Je n'arrive pas à finir ma requête :
Voiçi le résultat que je cherche :
Soit une Table [TABLE1] avec (ID, NOM)
Soit une Table [TABLE2] avec (ID, JOUR) lié à [TABLE1] par .. ID (Off
course...)
Soit une Table [TABLE3] avec (ID, RANG) lié à [TABLE1] par .. ID
Je souhaiterai avoir, pour chaque enregistrement de [TABLE1] (qui est
forcément unique) le nombre COUNT(*) d'enregistrements de la [TABLE2] ,
ainsi que le dernier (et uniquement le dernier correspondant à ID de TABLE1)
enregistrement de la [TABLE3]
Voiçi ma requête, mais s'il existe plusieurs enregistrements dans TABLE3,
alors il me double le résultat ?
SELECT T1.id, T1.nom, T3.id, T3.rang, Count(T2.jour) FROM table1 T1
INNER JOIN table2 T2 ON T1.id = T2.id
INNER JOIN table3 T3 ON T1.id = T3.id
WHERE T2.jour BETWEEN '2003-01-01' AND '2003-01-31'
GROUP BY T1.id, T1.nom, T1.id, T3.rang
ORDER BY T1.nom
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred BROUARD
Tu bloque car tu n'es pas cohérent....
Tu demande pourt T3 le dernier... Mais le dernier quoi ??? Si tu veut le dernier dans le temps rajoute une colonne DateTime avec l'horodatage systèe par défaut. Mais si tu ne précise pas le dernier de quoi cela n'a aucun sens.
Si je te donne un sac de bille et que je te demande de me présenter la dernière bille, quelle est celle que tu va m'extraire ???
A +
(( Olivier )) a écrit:
Bonjour,
Je n'arrive pas à finir ma requête : Voiçi le résultat que je cherche :
Soit une Table [TABLE1] avec (ID, NOM) Soit une Table [TABLE2] avec (ID, JOUR) lié à [TABLE1] par .. ID (Off course...) Soit une Table [TABLE3] avec (ID, RANG) lié à [TABLE1] par .. ID
Je souhaiterai avoir, pour chaque enregistrement de [TABLE1] (qui est forcément unique) le nombre COUNT(*) d'enregistrements de la [TABLE2] , ainsi que le dernier (et uniquement le dernier correspondant à ID de TABLE1) enregistrement de la [TABLE3]
Voiçi ma requête, mais s'il existe plusieurs enregistrements dans TABLE3, alors il me double le résultat ?
SELECT T1.id, T1.nom, T3.id, T3.rang, Count(T2.jour) FROM table1 T1 INNER JOIN table2 T2 ON T1.id = T2.id INNER JOIN table3 T3 ON T1.id = T3.id WHERE T2.jour BETWEEN '2003-01-01' AND '2003-01-31' GROUP BY T1.id, T1.nom, T1.id, T3.rang ORDER BY T1.nom
Merci Olivier
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
Tu bloque car tu n'es pas cohérent....
Tu demande pourt T3 le dernier... Mais le dernier quoi ???
Si tu veut le dernier dans le temps rajoute une colonne DateTime avec
l'horodatage systèe par défaut.
Mais si tu ne précise pas le dernier de quoi cela n'a aucun sens.
Si je te donne un sac de bille et que je te demande de me présenter la
dernière bille, quelle est celle que tu va m'extraire ???
A +
(( Olivier )) a écrit:
Bonjour,
Je n'arrive pas à finir ma requête :
Voiçi le résultat que je cherche :
Soit une Table [TABLE1] avec (ID, NOM)
Soit une Table [TABLE2] avec (ID, JOUR) lié à [TABLE1] par .. ID (Off
course...)
Soit une Table [TABLE3] avec (ID, RANG) lié à [TABLE1] par .. ID
Je souhaiterai avoir, pour chaque enregistrement de [TABLE1] (qui est
forcément unique) le nombre COUNT(*) d'enregistrements de la [TABLE2] ,
ainsi que le dernier (et uniquement le dernier correspondant à ID de TABLE1)
enregistrement de la [TABLE3]
Voiçi ma requête, mais s'il existe plusieurs enregistrements dans TABLE3,
alors il me double le résultat ?
SELECT T1.id, T1.nom, T3.id, T3.rang, Count(T2.jour) FROM table1 T1
INNER JOIN table2 T2 ON T1.id = T2.id
INNER JOIN table3 T3 ON T1.id = T3.id
WHERE T2.jour BETWEEN '2003-01-01' AND '2003-01-31'
GROUP BY T1.id, T1.nom, T1.id, T3.rang
ORDER BY T1.nom
Merci
Olivier
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto:brouardf@club-internet.fr ******************
Tu demande pourt T3 le dernier... Mais le dernier quoi ??? Si tu veut le dernier dans le temps rajoute une colonne DateTime avec l'horodatage systèe par défaut. Mais si tu ne précise pas le dernier de quoi cela n'a aucun sens.
Si je te donne un sac de bille et que je te demande de me présenter la dernière bille, quelle est celle que tu va m'extraire ???
A +
(( Olivier )) a écrit:
Bonjour,
Je n'arrive pas à finir ma requête : Voiçi le résultat que je cherche :
Soit une Table [TABLE1] avec (ID, NOM) Soit une Table [TABLE2] avec (ID, JOUR) lié à [TABLE1] par .. ID (Off course...) Soit une Table [TABLE3] avec (ID, RANG) lié à [TABLE1] par .. ID
Je souhaiterai avoir, pour chaque enregistrement de [TABLE1] (qui est forcément unique) le nombre COUNT(*) d'enregistrements de la [TABLE2] , ainsi que le dernier (et uniquement le dernier correspondant à ID de TABLE1) enregistrement de la [TABLE3]
Voiçi ma requête, mais s'il existe plusieurs enregistrements dans TABLE3, alors il me double le résultat ?
SELECT T1.id, T1.nom, T3.id, T3.rang, Count(T2.jour) FROM table1 T1 INNER JOIN table2 T2 ON T1.id = T2.id INNER JOIN table3 T3 ON T1.id = T3.id WHERE T2.jour BETWEEN '2003-01-01' AND '2003-01-31' GROUP BY T1.id, T1.nom, T1.id, T3.rang ORDER BY T1.nom
Merci Olivier
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************