|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : août 2006 Messages : 38 ![]() |
Bonjour,
J'ai construit une requête qui me compte le nombre d’échantillon par station Code :
Merci d'avance. |
||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Bonjour,
Les jointures ne s'écrivent plus en séparant les tables par des virgules depuis 1992... Passez à une écriture normalisée, avec la syntaxe INNER JOIN ... ON... Sinon, pour votre question, c'est effectivement faisable à coup de jointures, mais tout ça, c'est de la cosmétique et le SQL n'est pas fait pour ça. En effet, le jour où vous ajoutez une station, il faudra alors ajouter une jointure à votre requête pour qu'elle continue à renvoyer un résultat cohérent. Bref, l'affichage sous forme de "tableau croisé dynamique", c'est le rôle du langage de programmation qui lance la requête.
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#3 | ||||
|
Membre confirmé
![]() Développeur informatique Inscription : avril 2011 Messages : 196 ![]() |
Tu n'es pas obligé d'écrire le nom de la table avant chaque nom de colonne sauf en cas d'ambiguité.
Si tu ajoutes la date datesampls, ta requête pourrait s'écrire comme cela : Code :
Une autre idée serait de faire le tableau croisé comme ceci si le nombre de stations ne change pas. Code :
|
||||
|
|
01
|
|
|
#4 | |
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 445 ![]() |
Citation:
Il n'est alors pas nécessaire de connaître par coeur la structure de toutes les tables utilisées dans la requête pour la comprendre et la faire évoluer. Et, en plus, ça simplifie la vie de l'analyseur syntaxique
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur ![]() |
|
|
|
10
|
|
|
#5 | ||
|
Invité régulier
![]() Inscription : août 2006 Messages : 38 ![]() |
Bonjour,
J'utilise postgresl j’essaie d’executer la requête mais j’ai l’erreur suivante : Code :
|
||
|
|
00
|
|
|
#6 |
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 445 ![]() |
Avec COUNT(CASE StnCode WHEN 'BM' THEN SampleId ELSE NULL END) AS BM, ça fonctionnera mieux
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur ![]() |
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : août 2006 Messages : 38 ![]() |
Merci la requête marche
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com