Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
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 14/04/2011, 16h57   #1
Invité régulier
 
Inscription : mars 2011
Messages : 48
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 48
Points : 7
Points : 7
Par défaut select + fonction d'agrégation+d'autres champs

Bonjour,

je veux sélectionner une table avec une fonction d'agrégat (min) et sélectionner également d'autres colonnes :
Code :
1
2
3
4
  SELECT min (sectiontypeid_pk), sectiontypedesc, sectiontypename
    FROM sectiontype
   WHERE sectiontypeid_pk NOT IN (SELECT sectiontypeid_pk FROM sectiontype@BDPROD )
GROUP BY sectiontypeid_pk;
J'ai fais group by mais en vain
Citation:
ORA-00979: N'est pas une expression GROUP BY
Est-ce que ce je peux faire ça autrement en conservant le min et les autres champs sélectionnés ?
SALMHSN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 08h28   #2
Membre chevronné
 
Homme O. Joly
Support
Inscription : décembre 2010
Messages : 287
Détails du profil
Informations personnelles :
Nom : Homme O. Joly
Âge : 38
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Support
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2010
Messages : 287
Points : 617
Points : 617
Bonjour,

Soit vous souhaitez avoir le minimum global de sectiontypeid_pk soit vous voulez le minimum relatif pour chaque tuple sectiontypedesc, sectiontypename.

Dans le premier cas :
Code :
1
2
3
4
5
6
SELECT min (sectiontypeid_pk) over (ORDER BY sectiontypeid_pk) mpk
     , sectiontypedesc
     , sectiontypename
FROM sectiontype
WHERE sectiontypeid_pk NOT IN (SELECT sectiontypeid_pk 
                               FROM sectiontype@BDPROD ) ;
Dans le second cas

Code :
1
2
3
4
5
6
7
8
SELECT min (sectiontypeid_pk)  mpk
     , sectiontypedesc
     , sectiontypename
FROM sectiontype
WHERE sectiontypeid_pk NOT IN (SELECT sectiontypeid_pk 
                               FROM sectiontype@BDPROD )
GROUP BY sectiontypedesc
       , sectiontypename ;
ojo77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 12h12   #3
Invité régulier
 
Inscription : mars 2011
Messages : 48
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 48
Points : 7
Points : 7
Merci pour la réponse mais le résultat de la requête normalement une seule ligne je sais pas pourquoi la requête me retourne 2 lignes ayant la même clé primaire chose qui n'existe pas réellement dans la table sectiontype !!!!

SVP vous pouvez me dire le rôle de la clause over dans ce cas ?!!

Mercii pour votre aide
SALMHSN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 13h31   #4
Modérateur
 
Avatar de doc malkovich
 
Homme
Consultant en Business Intelligence
Inscription : juillet 2008
Messages : 950
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : juillet 2008
Messages : 950
Points : 1 467
Points : 1 467
Vous ne voulez pas plutôt la ligne avec l'id minimum ?

Code :
1
2
3
4
5
  SELECT sectiontypeid_pk, sectiontypedesc, sectiontypename
    FROM sectiontype
   WHERE sectiontypeid_pk=( SELECT min(b.sectiontypeid_pk) FROM sectiontype  b
         WHERE b.sectiontypeid_pk NOT IN (SELECT sectiontypeid_pk FROM sectiontype@BDPROD ))
GROUP BY sectiontypeid_pk;
__________________
Avez-vous 60 secondes pour répondre aux sondages sur BO ici et ?
doc malkovich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 15h33   #5
Invité régulier
 
Inscription : mars 2011
Messages : 48
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 48
Points : 7
Points : 7
Super Merci pour la réponse
SALMHSN 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 01h15.


 
 
 
 
Partenaires

Hébergement Web