Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

SANTANNA a écrit:

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


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

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

ChristopheV a écrit:

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

tumasgiu a écrit:

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

tumasgiu a écrit:

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

SANTANNA a écrit:

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

 

Pied de page des forums

Powered by FluxBB