|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : août 2008 Messages : 78 ![]() |
Bonjour,
J'ai plusieurs sélections à faire sur une même table de la sorte : Code :
J'ai bien lu des choses sur les requêtes imbriquées, les jointures mais je n'y arrive pas ... Quelle est la solution la plus simple? merci de votre aide. |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() François Chef de projet NTIC Inscription : janvier 2007 Messages : 5 353 ![]() |
Merci d'être plus clair, car là on ne sait pas trop ce que vous comptez obtenir.
__________________
Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça... Une réponse vous a aidé ? utiliser le bouton "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel |
|
|
02
|
|
|
#3 | ||
|
Membre émérite
![]() Tony Développeur .NET Inscription : novembre 2010 Messages : 570 ![]() |
en DB2 on peut faire ça (je ne sais pas si c'est syntaxe générique ou spécifique à DB2) :
Code :
__________________
Le Porc est un loup pour le Porc. |
||
|
|
20
|
|
|
#4 |
|
Membre Expert
![]() Responsable de service informatique Inscription : janvier 2009 Messages : 1 099 ![]() |
Bonjour,
Pour le faire avec "n'import quelle base", il faut utiliser une UNION. Mais attention, toutes les requêtes de l'union doivent renvoyer le même nombre de colonne, du même type. Donc avec l'exemple donné, ça ne fonctionne pas... Tatayo. |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : août 2008 Messages : 78 ![]() |
|
|
|
03
|
|
|
#6 | |
|
Candidat au titre de Membre du Club
![]() Inscription : août 2008 Messages : 78 ![]() |
Citation:
D’après ce que j'ai compris, UNION renvoie un ensemble de lignes et moi ce que qu'il me faut, c'est ajouter les enregistrements des requêtes en colonne... En récupérant à chaque requête le Id, on doit pouvoir faire une jointure mais je ne sais écrire un telle requête de façon simple (j'ai 7 requêtes à faire en série sur le même champ). |
|
|
|
00
|
|
|
#7 | |
|
Membre Expert
![]() Laure Consultante en Business Intelligence Inscription : avril 2007 Messages : 983 ![]() |
Citation:
Mais il faudrait qu'on connaisse le SGBD utilisé pour répondre correctement à la question !!
__________________
~ Lola ~ Ne pas oublier : et aussi :
|
|
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Responsable de service informatique Inscription : janvier 2009 Messages : 1 099 ![]() |
Effectivement, disons que je n'avais pas compris la question
...Tatayo. |
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : août 2008 Messages : 78 ![]() |
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Laure Consultante en Business Intelligence Inscription : avril 2007 Messages : 983 ![]() |
As-tu essayé la solution proposée par asmduty ?
Je n'ai pas pu trouver si c'était compatible avec ton SGBD. Un test simple pourrait nous le dire...
__________________
~ Lola ~ Ne pas oublier : et aussi :
|
|
|
00
|
|
|
#11 | ||
|
Membre confirmé
![]() Développeur informatique Inscription : octobre 2006 Messages : 181 ![]() |
Code :
|
||
|
|
20
|
|
|
#12 | |
|
Candidat au titre de Membre du Club
![]() Inscription : août 2008 Messages : 78 ![]() |
Citation:
Merci pour cette démo de syntaxe. ![]() Par contre, c'est assez super lourd à mettre en place (7 requêtes) ... ? |
|
|
|
00
|
|
|
#13 | |||
|
Candidat au titre de Membre du Club
![]() Inscription : août 2008 Messages : 78 ![]() |
Citation:
Cela fonctionne et c'est très simple à écrire. Je vais noter très précieusement cette syntaxe et retourner dans la doc pour bien comprendre la partie Code :
sum( case when (WHERE 1 ) then 1 else 0 end) |
|||
|
|
00
|
|
|
#14 | ||
|
Membre confirmé
![]() Développeur informatique Inscription : octobre 2006 Messages : 181 ![]() |
La partie
Code :
S'il n'y a pas d'index particulierement discriminant ou si un where n'a pas de condition ( comme le count(*) total de la table ) alors cette partie est inutile |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com