0
select PERSON.fornavn, PERSON.efternavn, PERSON.postnr, POST.distrikt
from PERSON inner join POST on POST.postnr = PERSON.postnr
inner join MEDLEM on PERSON.personnr = MEDLEM.personnr
inner join FORMAND on MEDLEM.personnr = FORMAND.personnr
group by PERSON.fornavn, PERSON.efternavn, PERSON.postnr, POST.distrikt, FORMAND.afdnr
having FORMAND.afdnr = 3
order by PERSON.fornavn

我需要显示与部门 3 的老板住在同一邮政编码的人,但结果没有意义。

Fornavn = 名字,Formand = 老板,Adresse = 地址,Afdeling = 部门(afdnr = 部门编号),Medlem = 成员

表:

PERSON: personnr, fornavn, adresse, postnr
POST: postnr, district
FORMAND: personnr, afdnr
MEDLEM: personnr, afdnr
AFDELING: afdnr, afdname
4

2 回答 2

2
select PERSON.fornavn, PERSON.efternavn, PERSON.postnr, POST.distrikt
from PERSON inner join POST on POST.postnr = PERSON.postnr
inner join MEDLEM on PERSON.personnr = MEDLEM.personnr
inner join FORMAND on MEDLEM.personnr = FORMAND.personnr
where FORMAND.afdnr = 3
group by PERSON.fornavn, PERSON.efternavn, PERSON.postnr, POST.distrikt, FORMAND.afdnr
order by PERSON.fornavn

尝试:

where FORMAND.afdnr = 3 

而不是

having FORMAND.afdnr = 3
于 2012-11-01T12:36:48.553 回答
0

如果我理解正确(“与(部门 3 的老板)居住在同一邮政编码的人”,并假设只有一个老板:

select PERSON.fornavn, PERSON.efternavn, PERSON.postnr, POST.distrikt
from PERSON
inner join POST on POST.postnr = PERSON.postnr
where PERSON.postnr = (SELECT pf.postnr 
                       FROM FORMAND f
                       inner join PERSON pf ON f.personnr = pf.personnr 
                       WHERE f.afdnr = 3)
order by PERSON.fornavn

注意:根据描述,您的查询毫无意义,除非我遗漏了什么。您正在通过 MEDLEM 加入 PERSON 到 FORMAND on personnr,这意味着您只会得到老板的记录 (PERSON.personnr = FORMAND.personnr)。

注意:如果有多个老板,您可以=WHERE子句中的 更改IN为让所有与任何老板住在同一邮政编码的人。


万一我读错了,你的意思是“部门 3 的(与老板住在同一邮政编码的人)”,试试:

select p.fornavn, p.efternavn, p.postnr, POST.distrikt
from PERSON p
inner join POST on POST.postnr = p.postnr
inner join MEDLEM on p.personnr = MEDLEM.personnr
inner join FORMAND on MEDLEM.afdnr = FORMAND.afdnr
inner join PERSON pf on FORMAND.personnr = pf.personnr AND pf.postnr = p.postnr
where MEDLEM.afdnr = 3
order by PERSON.fornavn

注意:同样,我相信您从问题中加入很奇怪。看上面。

于 2012-11-01T12:38:07.397 回答