Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Mon contexte :
J'ai actuellement plusieurs tables dans ma base de données.
La plupart d'entres elles ont un champ DateInsertion.
Mon besoin :
Je souhaiterai créer une fonction qui me donne pour chacune des tables le max(DateInsertion) quand celui-ci existe, et qui me met un null si ce champ n'existe pas.
Je souhaite donc appliquer la requête SELECT MAX(DateInsertion) FROM x, où x est le résultat de la requête SELECT schemaname FROM pg_stat_user_tables
En sortie, je veux le résultat sous la forme d'une table.
Ma requête SELECT relname FROM pg_stat_user_tables
relname
DimCategorie
DimRegion
DimClient
DimProduit
Ma requête demandée
relname | DateInsertion
DimCategorie | 11-02-2020
DimRegion | 14-02-2020
DimClient |
DimProduit | 19-02-2020
Je me demande d'ailleurs s'il est possible de faire cela dans une requête SQL simple.
Merci à vous
J'ai mis à jour le db-fiddle.
Tu verras que j'y ai mis un cas précis qui te montrera ma problématique.
Dverite,
J'ai essayé mais hélas, j'ai un classement qui ne correspond pas à un classement par date.
C'est compliqué car il faut "influencer" le champ tableau.
Je ne sais pas si une autre solution peut être possible.
Par contre, j'ai une requête à faire.
Le script fonctionne bien sauf pour un élément qui est important à prendre en compte.
Lorsqu'il incrémente les différentes versions, il les classe par tab_temp.
=> Or, il faudrait que l'ordre (et uniquement l'ordre) d'incrémentation se fasse par date.
Actuellement :
date départ arrivee version
20/01 2 3 v2
20/01 3 5 v2
20/01 5 9 v2
21/01 2 3 v1
21/01 3 5 v1
21/01 5 9 v1
Ma cible :
date départ arrivee version
20/01 2 3 v1
20/01 3 5 v1
20/01 5 9 v1
21/01 2 3 v2
21/01 3 5 v2
21/01 5 9 v2
Cher dverite,
Permet moi de répondre avec simpliciter :
Merci.
J'ai appliqué ta logique d'implémentation à mon cas et il marche à merveille. J'obtiens satisfaction totale.
Merci pour ce professionnalisme.
Du coup, on aura une ligne par numéro et par jour, avec par un exemple, un nouveau champ qui concatène toutes les valeurs arrivées et départs :
numero date valeurs_concat
001 20/01/2020 1-2-3-4-5-9
001 21/01/2020 1-2-3-4-5-9
001 14/06/2020 1-2-3-4-7-9
Est-ce bien cela ?
Si oui, comment composer une telle table ?
Merci à vous
Très bien.
Chaque numéro est composé d'un triplet de lignes (arrivée, départ) qui est sensé être identique d'un jour à l'autre :
Exemple :
Le 20/01/2020, pour le numéro 003, j'ai trois lignes
départ arrivee
1 2
3 4
5 9
Le 21/01/2020, pour ce même numéro,
départ arrivee
1 2
3 4
5 9
Etc. pour chaque jour.
Or, il arrive quelques jours dans l'année, ce triplet de lignes soit différent d'un jour à l'autre :
Le 14/06/2020, pour ce même numéro,
départ arrivee
1 2
3 4
7 9
Pour cela, si pour un même numéro, j'ai des triplets différents (au moins une valeur différente) d'un jour à l'autre, alors je souhaiterai versionner mes numéros :
20/01/2020
départ arrivee version
1 2 v1
3 4 v1
5 9 v1
21/01/2020
départ arrivee
1 2 v1
3 4 v1
5 9 v1
14/06/2020
départ arrivee
1 2 v2
3 4 v2
7 9 v2
J'espère avoir été suffisamment clair.
Merci à vous
Merci pour votre réponse.
Je souhaiterai modifier la table.
Bonjour,
Je souhaiterai avoir des pistes de scripts pour la rédaction d'une requête qui me permettrait de versionner les lignes d'une table.
Je m'explique.
J'ai une table X :
Numéro Date Début Fin
001 20/12/2020 1 2
001 20/12/2020 4 5
001 20/12/2020 7 8
001 21/12/2020 3 4
001 21/12/2020 6 7
001 21/12/2020 9 10
001 22/12/2020 1 2
001 22/12/2020 4 5
001 22/12/2020 7 8
Théoriquement, je suis sensé avec les mêmes trio de valeurs de départ et d'arrivée pour chaque jour. Or ce n'est pas le cas dans mon contexte.
Pour cela je souhaiterai versionner les numéros pour obtenir la table Y suivante :
Numéro Date Début Fin Variation
001 20/12/2020 1 2 Version 1
001 20/12/2020 4 5 Version 1
001 20/12/2020 7 8 Version 1
001 21/12/2020 3 4 Version 2
001 21/12/2020 6 7 Version 2
001 21/12/2020 9 10 Version 2
001 22/12/2020 1 2 Version 1
001 22/12/2020 4 5 Version 1
001 22/12/2020 7 8 Version 1
Pourriez vous m'éclairer sur la démarche à suivre ?
Merci à vous.
Pages : 1