|
| Iniciado por Ralph IGCI, 05,jun. 2020 21:40 - 10 respuestas |
| |
| | | |
|
| |
Miembro registrado 558 mensajes |
|
| Publicado el 05,junio 2020 - 21:40 |
Bonsoir, J'ai cette requête à écrire en sql.
SELECT LIGNSORT.KMACTUEL AS KMACTUEL_LIGNE, LIGNSORT.KMPROCHAIN AS KMPROCHAIN, VEHICULE.CODEENCOURS AS CODEENCOURS, VEHICULE.KMACTUEL AS KMACTUEL_VEHICULE, LIGNSORT.PJCLEUNIK AS PJCLEUNIK , SORTIE.DATESORTIE AS DATESORTIE FROM SORTIE, LIGNSORT, PIECEDET, VEHICULE, TypeEquipement WHERE TypeEquipement.IDTypeEquipement = VEHICULE.IDTypeEquipement AND VEHICULE.VECLEUNIK = LIGNSORT.VECLEUNIK AND PIECEDET.PJCLEUNIK = LIGNSORT.PJCLEUNIK AND SORTIE.SRCLEUNIK = LIGNSORT.SRCLEUNIK
Elle fonctionne très bien, Je dois récupérer , traiter et ne prendre pour chaque LIGNSORT, je veux seulement la dernière ligne par rapport à la DATESORTIE. , même si un véhicule à 5 ligne, je ne veux que la dernière par rapport à la date de LIGNESORT.
Merci de m'aider à la changer. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.362 mensajes |
|
| Publicado el 06,junio 2020 - 00:59 |
Bonjour, Il suffit d'ajouter une condition sur la colonne voulue. Par exemple
... AND SORTIE.DATESORTIE={pDateSortie} Il suffit, avant l'éxécution de la requête de passer la valeur du paramètre désiré comme expliqué dans la doc.
Dans ton cas, c'est un peu différent, à priori tu veux la dernière date de sortie, dont la date MAX. Il faut dans ce cas utiliser la fonction SQL MAX
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.682 mensajes |
|
| Publicado el 06,junio 2020 - 09:45 |
Bonjour,
Il n'y a pas de condition à rajouter, il suffit de trier la requête par date de sortie en décroissant et de récupérer la premiere ligne ou de faire un top 1 ou LIMIT 1 selon le SGBD
SELECT TOP 1 LIGNSORT.KMACTUEL AS KMACTUEL_LIGNE, LIGNSORT.KMPROCHAIN AS KMPROCHAIN, VEHICULE.CODEENCOURS AS CODEENCOURS, VEHICULE.KMACTUEL AS KMACTUEL_VEHICULE, LIGNSORT.PJCLEUNIK AS PJCLEUNIK , SORTIE.DATESORTIE AS DATESORTIE FROM SORTIE, LIGNSORT, PIECEDET, VEHICULE, TypeEquipement WHERE TypeEquipement.IDTypeEquipement = VEHICULE.IDTypeEquipement AND VEHICULE.VECLEUNIK = LIGNSORT.VECLEUNIK AND PIECEDET.PJCLEUNIK = LIGNSORT.PJCLEUNIK AND SORTIE.SRCLEUNIK = LIGNSORT.SRCLEUNIK ORDER BY DATESORTIE DESC
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 558 mensajes |
|
| Publicado el 06,junio 2020 - 10:17 |
Bonjour, Si vous faites cela vous aurez un enregistrement seulement, Je ne veux pas fixer le VECLEUNIK, ni celui PJCLEUNIK Mais pour chaque VECLEUNIK, et PJCLEUNIK, un seul enregistrement, le tout dernier Merci |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 558 mensajes |
|
| Publicado el 06,junio 2020 - 10:27 |
Bonjour et Merci, Ce que je veux faire, c'est éviter d'utiliser plusieurs requetes. C'est à dire filtre le VEHICULE, puis chercher les derniers PJCLEUNIK Merci |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 558 mensajes |
|
| Publicado el 06,junio 2020 - 11:03 |
Bonjour, Avec cette requete
SELECT LIGNSORT.KMACTUEL AS KMACTUEL_LIGNE, LIGNSORT.KMPROCHAIN AS KMPROCHAIN, VEHICULE.CODEENCOURS AS CODEENCOURS, VEHICULE.KMACTUEL AS KMACTUEL_VEHICULE, LIGNSORT.PJCLEUNIK AS PJCLEUNIK , SORTIE.DATESORTIE AS DATESORTIE FROM SORTIE, LIGNSORT, PIECEDET, VEHICULE, TypeEquipement WHERE TypeEquipement.IDTypeEquipement = VEHICULE.IDTypeEquipement AND VEHICULE.VECLEUNIK = LIGNSORT.VECLEUNIK AND PIECEDET.PJCLEUNIK = LIGNSORT.PJCLEUNIK AND SORTIE.SRCLEUNIK = LIGNSORT.SRCLEUNIK
J'ai ceci
KMACTUEL_LIGNE KMPROCHAIN CODEENCOURS KMACTUEL_VEHICULE PJCLEUNIK DATESORTIE 0 0 COM041 10 165 2 019 000 000 349 04/05/2020 0 0 COM041 10 165 2 019 000 000 349 08/05/2020 0 0 EX042 4 890 2 019 000 000 349 04/05/2020 0 0 EX042 4 890 2 019 000 000 349 06/05/2020 0 0 EX042 4 890 2 019 000 000 349 08/05/2020 4 890 7 390 EX042 4 890 2 019 000 000 715 03/04/2020 0 0 EX042 4 890 2 019 000 001 654 15/04/2020 0 0 LV051 3 745 2 019 000 000 349 05/05/2020 0 0 LV051 3 745 2 019 000 000 349 08/05/2020 0 0 TR001 6 108 2 019 000 000 349 04/05/2020 0 0 TR001 6 108 2 019 000 000 349 06/05/2020 0 0 TR001 6 108 2 019 000 000 349 08/05/2020 0 0 TR003 9 451 2 019 000 000 349 04/05/2020 0 0 TR003 9 451 2 019 000 000 349 08/05/2020 0 0 TRACR21 2 435 2 019 000 000 349 06/05/2020 0 0 TRACR21 2 435 2 019 000 000 349 08/05/2020
ce que je veux , c'est ceci
KMACTUEL_LIGNE KMPROCHAIN CODEENCOURS KMACTUEL_VEHICULE PJCLEUNIK DATESORTIE 0 0 COM041 10 165 2 019 000 000 349 04/05/2020 0 0 EX042 4 890 2 019 000 000 349 08/05/2020 4 890 7 390 EX042 4 890 2 019 000 000 715 03/04/2020 0 0 EX042 4 890 2 019 000 001 654 15/04/2020 0 0 LV051 3 745 2 019 000 000 349 08/05/2020 0 0 TR001 6 108 2 019 000 000 349 08/05/2020 0 0 TR003 9 451 2 019 000 000 349 08/05/2020 0 0 TRACR21 2 435 2 019 000 000 349 08/05/2020 je crois que c'est plus précis maintenant. Merci |
| |
| |
| | | |
|
| | |
| |
| Publicado el 08,junio 2020 - 09:39 |
Ralph IGCI a émis l'idée suivante :
Bonjour, Avec cette requete SELECT LIGNSORT.KMACTUEL AS KMACTUEL_LIGNE, LIGNSORT.KMPROCHAIN AS KMPROCHAIN, VEHICULE.CODEENCOURS AS CODEENCOURS, VEHICULE.KMACTUEL AS KMACTUEL_VEHICULE, LIGNSORT.PJCLEUNIK AS PJCLEUNIK , SORTIE.DATESORTIE AS DATESORTIE FROM SORTIE, LIGNSORT, PIECEDET, VEHICULE, TypeEquipement WHERE TypeEquipement.IDTypeEquipement = VEHICULE.IDTypeEquipement AND VEHICULE.VECLEUNIK = LIGNSORT.VECLEUNIK AND PIECEDET.PJCLEUNIK = LIGNSORT.PJCLEUNIK AND SORTIE.SRCLEUNIK = LIGNSORT.SRCLEUNIK J'ai ceci KMACTUEL_LIGNE KMPROCHAIN CODEENCOURS KMACTUEL_VEHICULE PJCLEUNIK DATESORTIE 0 0 COM041 10 165 2 019 000 000 349 04/05/2020 0 0 COM041 10 165 2 019 000 000 349 08/05/2020 0 0 EX042 4 890 2 019 000 000 349 04/05/2020 0 0 EX042 4 890 2 019 000 000 349 06/05/2020 0 0 EX042 4 890 2 019 000 000 349 08/05/2020 4 890 7 390 EX042 4 890 2 019 000 000 715 03/04/2020 0 0 EX042 4 890 2 019 000 001 654 15/04/2020 0 0 LV051 3 745 2 019 000 000 349 05/05/2020 0 0 LV051 3 745 2 019 000 000 349 08/05/2020 0 0 TR001 6 108 2 019 000 000 349 04/05/2020 0 0 TR001 6 108 2 019 000 000 349 06/05/2020 0 0 TR001 6 108 2 019 000 000 349 08/05/2020 0 0 TR003 9 451 2 019 000 000 349 04/05/2020 0 0 TR003 9 451 2 019 000 000 349 08/05/2020 0 0 TRACR21 2 435 2 019 000 000 349 06/05/2020 0 0 TRACR21 2 435 2 019 000 000 349 08/05/2020 ce que je veux , c'est ceci KMACTUEL_LIGNE KMPROCHAIN CODEENCOURS KMACTUEL_VEHICULE PJCLEUNIK DATESORTIE 0 0 COM041 10 165 2 019 000 000 349 04/05/2020 0 0 EX042 4 890 2 019 000 000 349 08/05/2020 4 890 7 390 EX042 4 890 2 019 000 000 715 03/04/2020 0 0 EX042 4 890 2 019 000 001 654 15/04/2020 0 0 LV051 3 745 2 019 000 000 349 08/05/2020 0 0 TR001 6 108 2 019 000 000 349 08/05/2020 0 0 TR003 9 451 2 019 000 000 349 08/05/2020 0 0 TRACR21 2 435 2 019 000 000 349 08/05/2020 je crois que c'est plus précis maintenant. Merci
bonjour,
le plus simple et le plus facile à comprendre est de procéder comme suit
- faire une req qui sélectionne les enregs voulus et qui les tri dans l'ordre voule - faire une 2nd req dont la clause from prend pour valeur la req précédente et grouper en fonction du besoin
exemple
select * from( SELECT LIGNSORT.KMACTUEL AS KMACTUEL_LIGNE, LIGNSORT.KMPROCHAIN AS KMPROCHAIN, VEHICULE.CODEENCOURS AS CODEENCOURS, VEHICULE.KMACTUEL AS KMACTUEL_VEHICULE, LIGNSORT.PJCLEUNIK AS PJCLEUNIK , SORTIE.DATESORTIE AS DATESORTIE FROM SORTIE, LIGNSORT, PIECEDET, VEHICULE, TypeEquipement WHERE TypeEquipement.IDTypeEquipement = VEHICULE.IDTypeEquipement AND VEHICULE.VECLEUNIK = LIGNSORT.VECLEUNIK AND PIECEDET.PJCLEUNIK = LIGNSORT.PJCLEUNIK AND SORTIE.SRCLEUNIK = LIGNSORT.SRCLEUNIK order by XXXX,XXXX,etc. ) as T group by T.XXXXX,T.XXXXX,T.etc.
-- Cordialement JeAn-PhI |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.682 mensajes |
|
| Publicado el 08,junio 2020 - 10:08 |
Bonjour,
Tout d'abord quel est le SGBD utilisé ?
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 558 mensajes |
|
| Publicado el 08,junio 2020 - 15:32 |
BOnsoir Philippe, Je suis sous HYPREFILE CS |
| |
| |
| | | |
|
| | |
| |
| Publicado el 08,junio 2020 - 17:48 |
Bonjour,
avec max(SORTIE.DATESORTIE) et group by ?
Cordialement, |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 558 mensajes |
|
| Publicado el 09,junio 2020 - 09:19 |
Bonjour, C'est comme si c'est ça, je mets le max de données. Merci |
| |
| |
| | | |
|
| | | | |
| | |
|