#1 Fri 15 December 2017 18:12
- guillaume LB56
- Juste Inscrit !
- Date d'inscription: 15 Dec 2017
- Messages: 8
QGIS: Trouvez la date la plus récente
Bonjour,
Je suis actuellement en cours de réalisation d'un tableau sph sur des contrôle d'assainissement non collectif.
J'ai en colonnes:
-Date_1
-Date_2
-Date_3
Toute mes colonnes n'on pas forcément de date pour chaque bâtiments.
J'aimerais trouver ma date la plus récente entre les 3 et rajouter 8 ans a cette date.
Je sais rajouter 8 ans a une date.
to_date("Date_1") + '8 years
Je sais ne pas prendre en compte les valeurs nul
COALESCE(Date_3,Date_2,Date_1)
Et pour trouver la valeur la plus récente j'ai essayé avec la fonction CASE sans succès.
Merci de votre réponse
Hors ligne
#2 Sat 16 December 2017 17:55
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS: Trouvez la date la plus récente
Bonjour,
la fonction max (la plus récente étant, en format date, la plus grande)?
Hors ligne
#3 Mon 18 December 2017 09:34
- guillaume LB56
- Juste Inscrit !
- Date d'inscription: 15 Dec 2017
- Messages: 8
Re: QGIS: Trouvez la date la plus récente
Je ne vois pas très bien la fonction que vous proposez
Hors ligne
#4 Mon 18 December 2017 10:08
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS: Trouvez la date la plus récente
max (Date_3,Date_2,Date_1) devrait renvoyer la valeur la plus grande des trois champs. Regardez l'aide associée à cette fonction.
Hors ligne
#5 Mon 18 December 2017 11:12
- Hocine Amine
- Participant actif
- Lieu: Tunisie
- Date d'inscription: 9 Jul 2007
- Messages: 55
Re: QGIS: Trouvez la date la plus récente
Bonjour,
Essayez d’ouvrir le fichier dbf directement sur Exel, vous pouvez faire toute les opérations nécessaires.
Hors ligne
#6 Mon 18 December 2017 11:31
- guillaume LB56
- Juste Inscrit !
- Date d'inscription: 15 Dec 2017
- Messages: 8
Re: QGIS: Trouvez la date la plus récente
J'ai réalisé les opération facilement avec la fonction max sur Exel mais j'aimerais que tout sois fais sur QGIS directement
Et le soucis c'est que je n'arrive pas a utiliser la fonction max ou similaire avec des dates.
Hors ligne
#7 Mon 18 December 2017 12:09
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS: Trouvez la date la plus récente
Et le soucis c'est que je n'arrive pas a utiliser la fonction max ou similaire avec des dates.
Message d'erreur? Résultat incohérent?
On peut voir comment les dates sont renseignées? Et c'est un champ de type date ou texte?
Hors ligne
#8 Mon 18 December 2017 14:19
- guillaume LB56
- Juste Inscrit !
- Date d'inscription: 15 Dec 2017
- Messages: 8
Re: QGIS: Trouvez la date la plus récente
Et le soucis c'est que je n'arrive pas a utiliser la fonction max ou similaire avec des dates.
Message d'erreur? Résultat incohérent?
On peut voir comment les dates sont renseignées? Et c'est un champ de type date ou texte?
Message NULL
les champs son renseigné en date
regardé l'image sur libre office
Hors ligne
#9 Mon 18 December 2017 16:10
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3199
- Site web
Re: QGIS: Trouvez la date la plus récente
Bonjour,
Message NULL
les champs son renseigné en date
regardé l'image sur libre office
Réponse NULLE, c'est pas parce que ça à l'air d'être une date sur l'image que le format date est celui du champ. Un champ texte formaté donne le même résultat.
Je vous conseille vivement de lire de la doc (et en français pour vous éviter les erreurs de traduction) et d'essayer de comprendre ce que les gens vous écrivent, car répondre à qqu'un que sa réponse est nulle (ou sont message nul (avec un seul L)) quand on ne sait pas c'est un peu étrange.
Apprenez ce qu'est un type de donnée et vous comprendrez la réponse de SANTANA.
Autre chose la fonction coalesce() renvoie le PREMIER résultat non nul.
Dernière chose il ne me semble pas qu'une valeur NULL gène la fonction max(), ces valeurs sont simplement ignorées par la fonction.
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#10 Mon 18 December 2017 16:23
- guillaume LB56
- Juste Inscrit !
- Date d'inscription: 15 Dec 2017
- Messages: 8
Re: QGIS: Trouvez la date la plus récente
Bonjour,
Message NULL
les champs son renseigné en date
regardé l'image sur libre office
Réponse NULLE, c'est pas parce que ça à l'air d'être une date sur l'image que le format date est celui du champ. Un champ texte formaté donne le même résultat.
Je vous conseille vivement de lire de la doc (et en français pour vous éviter les erreurs de traduction) et d'essayer de comprendre ce que les gens vous écrivent, car répondre à qqu'un que sa réponse est nulle (ou sont message nul (avec un seul L)) quand on ne sait pas c'est un peu étrange.
Apprenez ce qu'est un type de donnée et vous comprendrez la réponse de SANTANA.
Autre chose la fonction coalesce() renvoie le PREMIER résultat non nul.
Dernière chose il ne me semble pas qu'une valeur NULL gène la fonction max(), ces valeurs sont simplement ignorées par la fonction.
Je m'excuse on ne sait pas très bien compris le messages de la fonction max sur la calculatrice de champs est "NULL" et non pas que son message est nul
Hors ligne
#11 Mon 18 December 2017 16:29
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3199
- Site web
Re: QGIS: Trouvez la date la plus récente
Bonjour,
Erreur de ma part aussi.
max sur la calculatrice de champs
Tellement pas l'habitude d'utiliser ces trucs.
Alors là il faut voir la doc de QGis pour voir ce qu'est cette fonction Max(), je parlais de la fonction Max() de Postgis.
Je suppose que l'interface de connexion aux bases de données QGis implémente une fonction Max() standard.
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#12 Mon 18 December 2017 17:01
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: QGIS: Trouvez la date la plus récente
Salut,
la fonction max dans QGIS n'est pas une fonction d'agrégat,
et prends en compte la propriété absorbante de la valeur NULL,
commune en SQL (i.e. 1 + null = null)
Donc pour vous en sortir :
Code:
max(coalesce(date1, valeur_date_mini), coalesce(date2, valeur_date_mini), coalesce(date3, valeur_data_mini))
Dernière modification par tumasgiu (Mon 18 December 2017 17:08)
Hors ligne
#13 Mon 18 December 2017 17:12
- guillaume LB56
- Juste Inscrit !
- Date d'inscription: 15 Dec 2017
- Messages: 8
Re: QGIS: Trouvez la date la plus récente
Salut,
la fonction max dans QGIS n'est pas une fonction d'agrégat,
et prends en compte le caractère absorbant de la valeur NULL,
commune en SQL (i.e. 1 + null = null)
Donc pour vous en sortir :Code:
max(coalesce(date1, valeur_date_mini), coalesce(date2, valeur_date_mini), coalesce(date3, valeur_data_mini))
D'accord je comprend mieux pourquoi le "NULL" me posais problème
a quoi correspond "valeur_date_mini"?
Hors ligne
#14 Mon 18 December 2017 17:44
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: QGIS: Trouvez la date la plus récente
Excusez moi,
c'est une valeur de date minimale que vous devez définir.
Une idée serait de choisir une valeur qui serait inférieure
à l'ensemble de vos dates.
De cette manière, la fonction coalesce renverra cette valeur
quand une de vos colonnes possédera la valeur nulle,
et cette valeur ne sera jamais le résultat de la fonction max,
à moins que vos 3 colonnes soient nulles
(au sens des données hein, je critique pas).
pour rester dans une thématique d'actualité,
je propose :
Code:
to_date('1755-11-18')
la date de la création de la république de Corse
https://fr.wikipedia.org/wiki/R%C3%A9publique_corse
qui, je pense, devrait être antérieure à tout contrôle
d'assainissement non collectif.
Dernière modification par tumasgiu (Mon 18 December 2017 17:54)
Hors ligne
#15 Tue 19 December 2017 21:24
- JD
- Moderateur
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS: Trouvez la date la plus récente
Code:
to_date('1755-11-18')la date de la création de la république de Corse
https://fr.wikipedia.org/wiki/R%C3%A9publique_corse
qui, je pense, devrait être antérieure à tout contrôle
d'assainissement non collectif.
Ca m'a bien fait rire !
Hors ligne
#16 Wed 20 December 2017 08:45
- Hocine Amine
- Participant actif
- Lieu: Tunisie
- Date d'inscription: 9 Jul 2007
- Messages: 55
Re: QGIS: Trouvez la date la plus récente
Bonjour,
Une astuce pour savoir le format du champ visuellement, si les données s’affichent à gauche de la cellule donc le format du champ est texte.
Hors ligne
#17 Wed 20 December 2017 10:20
- guillaume LB56
- Juste Inscrit !
- Date d'inscription: 15 Dec 2017
- Messages: 8
Re: QGIS: Trouvez la date la plus récente
J'ai enfin réussi a réaliser ma problématique
Merci au personnes qui sont venus m'aider
Je vous donne ma solution
Des champs avec les dates des contôles "Date1" , "Date2" , "Date3" Exemple: (nom:Date1 résultat:2017-12-12)
Tout dabord avoir des champs avec que l'année de contrôle Code: year (Date1) = 2017 le faire pour les autres dates dans d'autres champs
Ensuite crer un champ avec une date entérieur à celle des contrôle Exemple:(nom:Date_référence résultat:0) Code:'0'
Pour ne plus avoir de problème avec les valeurs "NULL"
Utiliser la fonction "Coalesce()" pour revenir à la première valeur non "NULL" Code: COALESCE(Date1,Date_référence) le faire pour les autres dates dans d'autres champs
Utiliser dans un autres champs la fonction "Max()" Exemple:(non:Date_récen) Code: Max(les 3 colones utilisé au dessus)
Utiliser pour finir un champs finale ajouter 8 Code: "Date_récen" + '8'
Hors ligne
#18 Wed 20 December 2017 10:47
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS: Trouvez la date la plus récente
Bonjour,
Finalement, vous ne comparez que l'année, c'est ça? La formule de tumasgiu ne marchait pas? Auquel cas, serait-il possible d'afficher toute la formule en une seule "ligne" (de préférence en la plaçant entre des balises créées à l'aide du bouton "Code" de la barre d'outils)? Ca en facilitera l'usage pour les potentiels futurs bénéficiaires....
Hors ligne
#19 Wed 20 December 2017 16:46
- guillaume LB56
- Juste Inscrit !
- Date d'inscription: 15 Dec 2017
- Messages: 8
Re: QGIS: Trouvez la date la plus récente
Bonjour,
Finalement, vous ne comparez que l'année, c'est ça? La formule de tumasgiu ne marchait pas? Auquel cas, serait-il possible d'afficher toute la formule en une seule "ligne" (de préférence en la plaçant entre des balises créées à l'aide du bouton "Code" de la barre d'outils)? Ca en facilitera l'usage pour les potentiels futurs bénéficiaires....
Je ne compare que l'année exactement
La formule de tsumasgiu ne fonctionne que séparément
la date de référence j'ai pris 0
Il faut bien lire mon msg d'avant pour réussir
Chaque ligne dans le code si dessous correspond a un champ différent
Code:
year (Date1) '0' COALESCE(Date1,Date_référence) Max() "Date_récen" + '8'
Hors ligne