Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1634 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Bête requete ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Bête requete ...

n°1853884
Uncle_Scro​oge
Posté le 22-02-2009 à 11:04:45  profilanswer
 

Bonjour,

 

Je me prend la tête sur une stupide requête SQL.

 

Nous avons une table ayant cette structure

 

A B C D
a a 3 1111
b b 3 1111
c b 4 1111
z x 3 2222

 


avec A et C comme clè.

 

Nous voulons selectionner les lignes ou pour un D donné, nous avons plusieurs clé différentes.
(par exemple, les lignes pour D = 1111)

 

je pense à :
select *
from T1
group by D
having count(*) > 1;

 

mais passe pas ...
erreur sur le group by


Message édité par Uncle_Scrooge le 22-02-2009 à 11:05:23
mood
Publicité
Posté le 22-02-2009 à 11:04:45  profilanswer
 

n°1853899
olivthill
Posté le 22-02-2009 à 13:07:43  profilanswer
 

Avec quelle base de données ?
 
Ca ne passe pas car count(*) ne fait pas parti des colonnes du résultat, et que Having est un traitement qui se base sur ces colonnes.
 
A la place, essayer :

Select distinct A, B, C, D from latable T1, latable T2
where T1.D = T2.D
and (T1.A <> T2.A or T1.B <>T2.B or T1.C <> T2.C);

n°1854139
vttman2
Je suis Open ...
Posté le 23-02-2009 à 13:57:46  profilanswer
 

Essaie ça aussi  
=>
select * from T1
where D in  
(select D
from T1
group by D
having count(*) > 1);


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
n°1854314
smilaou
Posté le 23-02-2009 à 18:47:03  profilanswer
 

olivthill a écrit :

Avec quelle base de données ?
Ca ne passe pas car count(*) ne fait pas parti des colonnes du résultat, et que Having est un traitement qui se base sur ces colonnes.


 

vttman2 a écrit :

Essaie ça aussi  
=>
select * from T1
where D in  
(select D
from T1
group by D
having count(*) > 1);


 
Tu as lu olivthill?

n°1854423
olivthill
Posté le 24-02-2009 à 00:17:26  profilanswer
 

Ce n'est pas grave. Tout le monde a le droit de proposer des réponses même si elles ne marchent pas (d'ailleurs je me suis moi-même trompé en mettant un test sur B alors que ce champ n'est pas dans la clé).
Uncle_Scrooge fera l'arbitrage (s'il revient un jour ici).

n°1854666
smilaou
Posté le 24-02-2009 à 15:44:19  profilanswer
 

Ton SQL est à mon avis valable (il ne tombe pas en erreur...)
 
Je me demande s'il ne voulait pas un truc tout simple comme:
select D, count(*)
from T1
group by D having count(*) > 1;

n°1855085
MagicBuzz
Posté le 25-02-2009 à 14:50:50  profilanswer
 

le count(*) n'a pas besoin d'être dans le select pour être utilisé dans le having... ou alors changez de SGBD parce que franchement...

 

par contre, pas de select * sans un group by sur toutes les colonnes de la table (sauf sous mysql qui a un comportement assez imprévisible dans ce cas, mais qui ne rejette pas la requête)


Message édité par MagicBuzz le 25-02-2009 à 14:51:01
n°1856340
Uncle_Scro​oge
Posté le 28-02-2009 à 18:09:59  profilanswer
 

smilaou a écrit :

Ton SQL est à mon avis valable (il ne tombe pas en erreur...)
 
Je me demande s'il ne voulait pas un truc tout simple comme:
select D, count(*)
from T1
group by D having count(*) > 1;


 
Il faut que je récupère toutes les données de T1 et ça passe avec la proposition d'olivthill :jap:
 

n°1864312
akario
Posté le 21-03-2009 à 10:53:02  profilanswer
 

Uncle_Scrooge a écrit :


 
Il faut que je récupère toutes les données de T1 et ça passe avec la proposition d'olivthill :jap:
 


 
pour une optimisation des performances :
 
select T1.*  
from T1 inner join  
   (  
   select A, C
   from T1
   group by D having count(*) > 1;
   ) as T2 on ( T1.A = T2.A and T1.C = T2.C )
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Bête requete ...

 

Sujets relatifs
problème requete sql sous oracleoracle
[MySQL] Requete pour récupérer les lignes de fin de moisProblème de requête....
[SQL Serveur] probleme requete avec calcul (tout bete)Requete surment toute bete
Access, bete requete svp SQL, help needed :cry:[access]petit souci tout bete de requete sql...
Petite question tout bete sur une requetepetite requete sql toute bete
Plus de sujets relatifs à : Bête requete ...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR