PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 15/04/2010 14:56:00

marc.stx
Membre

Requete sur 2 tables

Bonjour,

Je débute en SQL et je souhaiterai avoir une petite aide concernant une requête relativement simple (je pense).

J'ai 2 tables :
T1 contenant les variables ID1, ID2
T2 contenant les variables ID2, NOM, TYPE

Je souhaiterai que ma requête me retourne la table TT contenant :

ID1 , nombre de ID2 par ID1, si NOM=TOTO et si TYPE=H

Merci pour vos réponses

Hors ligne

#2 15/04/2010 17:05:24

marc.stx
Membre

Re : Requete sur 2 tables

Ne faut il pas faire un GROUP BY id1 pour avoir le nombre de id2 par id1 ?

Je travaille sur des données cadastrales.
id1 est l'identifiant de parcelle et id2 celui des bâtiments.
je souhaite avoir un tableau avec :
n° de parcelle [id1], le nombre total de logements [count (id2)] , le nombre total de logements vides [type=vide]

Je suis preneur d'adresse pour de bons tutoriels.

Merci

Hors ligne

#3 15/04/2010 17:16:56

Marc Cousin
Membre

Re : Requete sur 2 tables

oups j'ai oublié de taper le group by wink

SELECT id1, count(t2.id2) from t1 join t2 on (t1.id2=t2.id2) where nom='TOTO' and type='H' group by id1;

Si vous voulez faire plusieurs décomptes en même temps, c'est un peu plus complexe, mais peut tout de même être fait en une seule requête : quelque chose comme :

SELECT id1, count(t2.id2), sum(case when type='vide' then 1 else 0 end) from t1 join t2 on (t1.id2=t2.id2) where nom='TOTO' and type='H' group by id1;


Marc.

Hors ligne

#4 15/04/2010 17:54:23

marc.stx
Membre

Re : Requete sur 2 tables

Merci bq, tout fonctionne.
J'aurai appris la fonction CASE...

Dernière modification par marc.stx (15/04/2010 17:54:35)

Hors ligne

Pied de page des forums