Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/03/2011, 15h31   #1
Débutant
 
Avatar de afrodje
 
Homme Jérémy
Développeur Web
Inscription : octobre 2006
Messages : 1 094
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 1 094
Points : 614
Points : 614
Par défaut [DB2] Retourner un enregistrement dans tous les cas

Bonjour,

Dans les cas ci-dessous, j'aimerai avoir un seul enregistrement à chaque fois.

Cas 1 :
Code :
1
2
3
4
5
6
7
2560	Y
2560	Y
2560	Y
2560	Y
2560	Y
2561	Y
2562	Y
Résultat voulu pour l'ID 2560:
Cas 2 :
2560 Y
2560 " "
2560 Y
2560 Y
2560 " "
2561 Y
2562 " "

Résultat voulu pour l'ID 2560:
J'ai essayé la requête ci-dessous mais dans le cas n°2, la requête me renvoi 2 enregistrements alors que je vourdrais seulement 2560 " ":
Code :
1
2
3
4
SELECT champ1, flag
FROM f47012            
GROUP BY champ1, flag
HAVING champ1= 2560
Merci d'avance.
__________________
Évènements dans le 06?
www.sortir06.com
afrodje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 16h17   #2
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 821
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 42
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 821
Points : 1 041
Points : 1 041
Code :
1
2
3
4
SELECT champ1, min(flag)
FROM f47012            
WHERE champ1= 2560
GROUP BY champ1
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 16h17   #3
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 638
Points : 2 630
Points : 2 630
bonjour,

si votre colonne flag n'a que 2 valeur possible Y ou " " alors essayez ceci, uqi doit marcher pour les deux cas :
Code sql :
1
2
3
4
5
 
SELECT champ1, min(flag)
FROM ma_table
WHERE champ1 = 
GROUP BY champ1

Changez le min en max si le résulta rendu n'est pas celui voulu.

edit: en effet :p
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 16h19   #4
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 821
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 42
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 821
Points : 1 041
Points : 1 041
@punkoff,

petit téléscopage
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 10h25   #5
Débutant
 
Avatar de afrodje
 
Homme Jérémy
Développeur Web
Inscription : octobre 2006
Messages : 1 094
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 1 094
Points : 614
Points : 614
Citation:
Envoyé par K2R400 Voir le message
Code :
1
2
3
4
SELECT champ1, min(flag)
FROM f47012            
WHERE champ1= 2560
GROUP BY champ1
Citation:
Envoyé par punkoff Voir le message
bonjour,

si votre colonne flag n'a que 2 valeur possible Y ou " " alors essayez ceci, uqi doit marcher pour les deux cas :
Code sql :
1
2
3
4
5
 
SELECT champ1, min(flag)
FROM ma_table
WHERE champ1 = 
GROUP BY champ1

Changez le min en max si le résulta rendu n'est pas celui voulu.

edit: en effet :p
Ok super.

J'ai rajouté aussi un FETCH FIRST 1 ROWS ONLY en fin de requête.
__________________
Évènements dans le 06?
www.sortir06.com
afrodje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 10h52   #6
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 821
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 42
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 821
Points : 1 041
Points : 1 041
Citation:
Envoyé par afrodje Voir le message
J'ai rajouté aussi un FETCH FIRST 1 ROWS ONLY en fin de requête.
C'est inutile avec les agrégats de type MIN, MAX, SUM, COUNT, AVG etc... sans group BY. Il y aura toujours qu'une seule ligne renvoyée.
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h06.


 
 
 
 
Partenaires

Hébergement Web