|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2010 Messages : 30 ![]() |
Bonjour à tous,
Je suis en train de créer une requête pour compter les nombre de bateaux différents passent sur une voie eau. Avec une requête j'ai les noms du bateau regrouper PAR MOIS et par voie eau, sauf je ne sais pas comment regrouper les bateaux qui sont dans le même mois? comme dans la requête ci-dessous : je veux obtenir le résultat: 1 bateau client pour janvier,1 pour février,1 pour mars et 4 bateaux pour avril. mon idée c'est de compter la ligne enregistrement du " MOIS", sauf que j'obtiens pas le bon résultat. Cle VOIE_EAU MOIS ANNEE MATRICULE-DEVISE Nb_passages ILL-2011 ILL 1 2011 NC-PAS 66 ILL-2011 ILL 2 2011 NC-PAS 201 ILL-2011 ILL 3 2011 NC-PAS 231 ILL-2011 ILL 4 2011 FRC218-WATERWRIEND 2 ILL-2011 ILL 4 2011 NC-PAS 924 ILL-2011 ILL 4 2011 AWSC-NEURIED 1 ILL-2011 ILL 4 2011 B035-EXPLORER 1 Vous avez des idées? Merci d'avance! |
|
|
00
|
|
|
#2 |
![]() ![]() |
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 850 ![]() |
salut,
un truc dans le genre devrait le faire: Code :
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
||
|
|
00
|
|
|
#4 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2010 Messages : 30 ![]() |
ci-joint ma requête :
Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 850 ![]() |
ça correspond pas du tout à la structure que tu as montré au départ
![]() enfin ma requête devrait t'inspirer...
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
|
|
#6 | |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2010 Messages : 30 ![]() |
Citation:
L'origine de ma requête est pour calculer le nombre de passage de bateau par écluse, sauf j'ai modifié en regroupant par voie eau. Avec cette requête, j'obtiens le résultat au dessus. |
|
|
|
00
|
|
|
#7 | ||||
![]() ![]() |
Ouch ! Elle fait mal aux yeux ta requête !
![]() 1) Les apostrophes inversées sont inutiles, sauf pour la colonne "date" qui ne devrait pas s'appeler ainsi car c'est un mot réservé du langage SQL ! 2) Depuis 1992, les jointures s'écrivent avec JOIN ! En les écrivant correctement, tu te serais rendu compte qu'il manque la condition de jointure avec la table des mois ! Je me demande d'ailleurs à quoi sert cette jointure ! Tu veux tous les mois même s'il n'y a pas de bateau ? Fais une jointure externe à partir du mois ! Je trouve aussi que tu te compliques bien la vie puisque tu sembles ne chercher que les types de bateau 'P' pour le code voie d'eau 'ILL' en 2011 ! Voici ta requête récrite correctement, avec toutefois la condition de jointure sur le mois à faire : Code :
Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||||
|
00
|
|
|
#8 | |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2010 Messages : 30 ![]() |
Citation:
Merci pour les conseils, je débute et je bidouille ma requête Par contre, j'ai fait count(distinct(matricule-devise)) comme eric a conseillé, il me rend 1 bateau correspond 1 client, mais il ne cumule pas les clients par mois? |
|
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 850 ![]() |
le order by est pas vraiment nécessaire sauf à vouloir mettre un ordre autre que l'ordre par défaut quitte à simplifer encore
![]() j'avoue que j'ai pas eu le courage de lui refaire sa requête quand j'ai vu ce qu'il a écrit... tu es courageux ![]() j'ai l'impression qu'en fac ça a pas changé depuis que j'y suis passé... on enseigne encore les jointures thêta bourrines et pas vraiment les formes normalisées
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 850 ![]() |
tu as pas besoin de la parenthèse interne au count, distinct suivi d'un espace et de ce que tu comptes permet juste de dire que tu veux compter les éléments retourner sans prendre en compte les doublons
ma requête se basit sur ce que tu avait montré au début donc faut adapter
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
|
|
#11 | |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2010 Messages : 30 ![]() |
Citation:
|
|
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 850 ![]() |
déjà file les create de tes tables et un jeu de données sous forme d'insert qu'on puisse facilement tester...
parce que là je pensais ton pb réglé avec ce qu'on avait dit entre cinephil et moi... et là ça devient pénible de voir ce qui va pas encore... et comme ça tu donneras aussi les résultats attendus pour le jeu de test et le format que tu veux...
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
|
|
#13 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2010 Messages : 30 ![]() |
Tu as raison Eric!
Demain matin |
|
|
00
|
|
|
#14 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2010 Messages : 30 ![]() |
En PJ, j'ai mis ma base complète + les données+requête pour générer le tableau de bord+ 1 modèle TDB(indicateur mensuel de trafics de bateau plaisance).
Dans le modèle TDB fourni, on compte uniquement les passages tout confondu, il y a 2 graphique, trafic mensuel et trafic cumulé année en cours par écluse. En plus de trafic cumulé mensuel et maintenant je souhaite avoir le nombre exacte de différents bateaux ont passé sur une voie eau car un même bateau X peut passer 100 fois par mois(=100passages dans ancien TDB), mais ce qui m'intéresse maintenant qu'il est considérer comme 1 client et non pas 100 clients. je veux avoir la nombre de clients par mois et par voie eau. J'espère c'est un peu plus claire mes explications
|
|
|
00
|
|
|
#15 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 850 ![]() |
j'ai récupéré, je vais regarder
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
10
|
Copyright © 2000-2012 - www.developpez.com