Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
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 18/08/2005, 16h11   #1
Membre éclairé
 
Avatar de genova
 
Inscription : septembre 2004
Messages : 487
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 487
Points : 397
Points : 397
Envoyer un message via MSN à genova
Par défaut Requète MySQL >> Postgresql

Bonjour,
dans un soucis de portabilité d'une application sur plusieurs base de donnée, j'ai besoin de faire tourner mon programme (php) sous mysql et postgresql. Cependant j'ai une requète MYSQL qui semble ne pas marcher sous postgresql :
Code :
SELECT g.*, COUNT(gu.g_id) AS g_count FROM fsb2_groups g LEFT JOIN fsb2_groups_users gu ON g.g_id = gu.g_id WHERE g.g_type <> 1 AND g.g_type <> 3 GROUP BY g.g_id
n'étant pas calé en pgsql, j'aimerai comprendre ce qui ne va pas, sachant que l'erreur est :
Code :
ERROR: COLUMN "g.g_name" must appear IN the GROUP BY clause OR be used IN an aggregate FUNCTION
Merci d'avance
genova est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2005, 16h27   #2
Membre actif
 
Homme Patrick BONNEFOI
Responsable d'un système d'information métier
Inscription : juin 2002
Messages : 177
Détails du profil
Informations personnelles :
Nom : Homme Patrick BONNEFOI
Âge : 37
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Responsable d'un système d'information métier
Secteur : Finance

Informations forums :
Inscription : juin 2002
Messages : 177
Points : 187
Points : 187
Envoyer un message via MSN à BONNEFOI Patrick
Salut,

en SQL, en principe, quand tu mets des champs dans une clause Group BY, tu dois reporter ces champs dans le select.

Tu ne peux pas avoir
Code :
SELECT * FROM TABLE GROUP BY xxx;
je ne connais pas MySQL mais je sais que sous Oracle ça ne marche pas, sous Pg je suppose que cela est pareil

A+
BONNEFOI Patrick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2005, 16h32   #3
Membre éclairé
 
Avatar de genova
 
Inscription : septembre 2004
Messages : 487
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 487
Points : 397
Points : 397
Envoyer un message via MSN à genova
Ah oui c'est un problème, il n y a pas une astuce ? Car le problème c'est que le nombre de champ dans * peut très bien changé
genova est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2005, 09h05   #4
Membre actif
 
Homme Patrick BONNEFOI
Responsable d'un système d'information métier
Inscription : juin 2002
Messages : 177
Détails du profil
Informations personnelles :
Nom : Homme Patrick BONNEFOI
Âge : 37
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Responsable d'un système d'information métier
Secteur : Finance

Informations forums :
Inscription : juin 2002
Messages : 177
Points : 187
Points : 187
Envoyer un message via MSN à BONNEFOI Patrick
Salut,

je ne suis pas un pro du SQL mais je me débrouille, je pense que tu peut t'en sortir en faisant
Code :
1
2
3
4
 
SELECT * 
FROM TABLE, (SELECT Chp1 FROM TABLE GROUP BY Chp1) S1
WHERE TABLE.chp1 = S1.Chp1
mais j'en vois pas l'utilité

le Group by permet de faire des agrégats (style SUM, COUNT, AVG, MIN, MAX, ...)
Sinon sur le site tu as http://sql.developpez.com/ qui peut t'aider
avec des tutoriels, des exemples, ...

A+
BONNEFOI Patrick est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h33.


 
 
 
 
Partenaires

Hébergement Web