bonjour, supposons ton fichier .csv avec 3 champs dont le dernier est le champ "promotion". A partir de calc, Feuilles - lien vers données externes - <choisir ton fichier .csv> le fichier sera importé dans ta feuille, dans la colonne D1 : =SI(C1="";0;1)
indiquera 1 si promotion different de zéro (tu copies/colles cette formule sur toutes les lignes). Si ensuite, fon fichier csv venait à être modifié : Editon - liens de données externes- [actualiser] idée rapide et à l'arrache. A voir si ça peut convenir. nb: ton problème avec la requêtes est sql est probablement du à ce que base ne considère pas un fichier .csv comme une table "standard" sql de base. Si tu importes ton fichier normalement et le transforme comme une table, probablement que cela fonctionnera. Yves Le sam. 29 mai 2021 à 09:44, <[email protected]> a écrit : > Merci à tous les deux. > > Concernant le forum https://ask.libreoffice.org/fr/questions/, je > l'avais vu, mais il ne m'a pas semblé très actif autour de Base, et > comme sur la page officielle de LibreOffice, ils mentionnent que le > canal officiel pour demander de l'aide, c'est la liste...je suis allé > par là. > Concernant ma version (obsolète) de LibreOffice, c'est parceque je > travaille sous Linux, distribution non compilée Gentoo, qui du coup a > toujours un peu de retard dans la mise à disposition de paquets stables, > pour privilégier la stabilité des versions officiellement stables (même > si je peux installer la nouvelle version de LibreOffice en "forçant" le > paquet jugé instable sous Gentoo) > Merci Jean-Michel (COSTE) pour le lien vers la documentation (dont il > semble que vous êtes le traducteur ? Merci pour ça !). > J'y apprends qu'il y a 2 manières de se connecter à un fichier CSV : > 1) Tables de texte dans une base de données HSQLDB interne > 2)Les tables texte comme base d’une base de données autonome > J'ai utilisé la 2ème méthode. Et dans ce cas, la documentation indique > "L’accès aux tables par requêtes est également limité à une table à la > fois et sans l’utilisation de > fonctions. De même, les relations ne sont pas prises en charge"... > Si on ne peut pas utiliser de fonctions, ça explique donc pourquoi ma > colonne reste toujours vide ! > Donc j'ai testé la méthode 1). Mais elle ne convient pas non plus, car > je n'ai pas de clé primaire numérique dans mon fichier CSV...donc > impossible de lier la table (je peux créer le squelette vide à l'aide de > l'instruction SQL, mais pas faire la liaison) > > Je suis donc un peu coincé... > A l'origine, mon vrai besoin était de créer des analyses graphiques > depuis les données sources du fichier CSV, et j'avais besoin de > simplifier le champ "Promotion" par une simple information "présence ou > absence : 1 ou 0. Et de restituer, pour 1 produit au choix, un > historique de prix sous forme de graphique "courbe" et des batons > lorsqu'une période est sous promotion (bâtons à 1 lors d'une période > sous promotion, et à 0 (donc invisible) hors période de promotion). > Je pensais donc faire le graphique dans CALC, grâce à un tableau croisé > dynamique dont la source aurait été une base de données BASE > (enregistrée pour être utilisable dans CALC) qui elle-même aurait été > liée à mon fichier CSV. > Manifestement, je ne peux pas faire ça. > A tout hasard, auriez une idée pour contourner le problème ? > En tout cas, merci de vos contributions fort utiles ! > Cordialement, > > Le 29/05/2021 à 08:09, Jean-Michel PIERRE a écrit : > > Il est aussi possible de poser les questions sur cette page : > > https://ask.libreoffice.org/fr/questions/ > > Un fichier peut y être téléversé pour être testé > > > > Jean-Michel PIERRE > > Tél : 05.49.255.333 > > Tél : 06.19.55.73.22 > > > >> Le 29 mai 2021 à 00:53, Jean-Michel COSTE <[email protected]> a > écrit : > >> > >> Bonjour, > >> > >>> Le 28/05/2021 à 19:23, [email protected] a écrit : > >>> Bonjour à tous, > >>> C'est la 1ère fois que j'utilise une liste comme moyen de solliciter > de l'aide. J'espère que j'ai bien saisi le principe, et que mon message > n'est pas à côté de la plaque ;-) > >>> J'ai cherché sur Internet pour trouver une réponse à mon problème, > mais aucune des solutions que j'ai trouvé ne fonctionne, bien qu'elles > semblent pertinentes. > >>> > >>> J'utilise LibreOffice 6.4.7.2 > >> Cette version est obsolète, la dernière version stable est la 7.06 > (mais ce n'est pas la cause du problème) > >>> Le problème : j'ai une table HistoriquePromo (qui est un fichier CSV, > la base de donnée est connectée à ce fichier CSV). J'ai un champ Promotion > dans cette table, qui contient parfois une information (libellé de la > promotion, c'est du texte). Le reste du temps, il est vide (il n'y a donc > pas de promotion). > >>> Mon besoin : Dans une requête SELECT "Article" "Article", > "Description" "Description", "Date" "Date", "Prix" "Prix", "Promotion" > "Promotion" FROM "HistoriquePromo", je veux ajouter une colonne à la > requête qui renvoit 1 si une promotion est présente (le champ est rempli > avec du texte), 0 sinon. > >>> > >>> J'ai testé : SELECT "Article" "Article", "Description" "Description", > "Date" "Date", "Prix" "Prix", "Promotion" "Promotion", COALESCE ( > "Promotion", 1, 0 ) "PromotionExists" FROM "HistoriquePromo" > >>> > >>> mais la nouvelle colonne "PromotionExists" reste vide. Je n'ai, > cependant, pas de message d'erreur. > >> Attention, il y a deux manières de gérer une table texte, il est > possible que ça ne fonctionne pas dans l'une des deux. Lire le chapitre 2 > du Guide Base ; > https://wiki.documentfoundation.org/Documentation/Publications/fr#Guide_Base > < > https://wiki.documentfoundation.org/Documentation/Publications/fr#Guide_Base > > > >> > >> Il est précisé dans la documentation que pour qu'une base CSV soit > modifiable, elle doit être munie d'un champ numérique à valeurs uniques. > >> > >>> J'ai testé CASE WHEN "Promotion" = "" THEN 0 ELSE 1 END : la nouvelle > colonne reste vide. > >> J’essaierais CASE "Promotion" WHEN "" THEN 0 ELSE 1 > >> > >> Cordialement, > >> > >> > >> -- > >> > >> > >> Jean-Michel COSTE > >> > >> > >> -- > >> Envoyez un mail à [email protected] pour vous > désinscrire > >> Les archives de la liste sont disponibles à > https://listarchives.libreoffice.org/fr/users/ > >> Privacy Policy: https://www.documentfoundation.org/privacy > > -- > Envoyez un mail à [email protected] pour vous > désinscrire > Les archives de la liste sont disponibles à > https://listarchives.libreoffice.org/fr/users/ > Privacy Policy: https://www.documentfoundation.org/privacy > -- web site : http://www.molenbaix.com -- Envoyez un mail à [email protected] pour vous désinscrire Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/ Privacy Policy: https://www.documentfoundation.org/privacy
