2010-03-24 3 views
1

Ceci est probablement une question amateur mais je suis un amateur! ; o)DB2 compte SQL dans la jointure ou où la clause

J'ai plusieurs tables: table de compte, table d'agent, table d'emplacement, table de Web ... La table d'officier ne me donne pas le nombre d'agents par compte.

Je n'ai besoin de récupérer que les comptes qui comptent plus de 20 agents. Devrais-je utiliser COUNT? Si c'est le cas, comment ?

Votre aide est grandement appréciée. Merci.

Pat

+0

S'il vous plaît poster votre schéma. Comment les comptes sont-ils liés aux agents? – RedFilter

Répondre

0

Mise à jour:

select a.id, a.eff-date, l.address, l.city, c.phonenumber 
from Account a 
left outer join location l on a.id = l.id 
left outer join contact c on a.id = c.id 
where a.id in (
    select a.id 
    from Account a 
    inner join Officer ao on a.id = ao.id 
    group by a.id 
    having count(*) > 20  
) 
+0

ok .. voici le problème table de compte (id, etc eff jour) joindre à la table des officiers (id, numéro d'officier) joindre à la table de l'emplacement (id, adresse, ville, etc.) jointure gauche table de contact (id, téléphone numéro gauche rejoindre webinfo tableau (site web, email, etc) le but est d'afficher uniquement les ID qui ont plus de 20 numéro d'officier désolé pour le manque d'explications ... mon mauvais! merci pour votre aide .. vraiment l'apprécier – Pat

+0

Voir ma mise à jour. Quelles sont les relations? La colonne 'id' représente-t-elle toujours l'identifiant de compte? – RedFilter

+0

oui id représentant toujours l'identifiant de compte ... si je voulais afficher id, eff-date, adresse, ville, numéro de téléphone quand disponible mais seulement ceux qui ont plus de 20 officiers ... comment je coderais ceci? – Pat

Questions connexes