使用多个列返回Access数据库中的唯一值

时间:2013-03-10 16:28:31

标签: sql ms-access

现在谷歌搜索了几个小时。但找不到让我的SQL查询工作的方法。

SELECT barn.förnamn+' '+barn.efternamn AS Child, målsman.förnamn+' '+målsman.efternamn AS Parent, Målsman.postnummer
FROM barn INNER JOIN Målsman ON barn.Postnummer = Målsman.Postnummer
WHERE (((Målsman.postnummer) Like '*23*'));

我有两张桌子。 MålsmanBarn。这是一个包含儿童和父母在一起的桌子。这两个都有列; FörnamnEfternamnPostnummer。 现在其中一些孩子有同一个父母,有些父母也有两个孩子。这导致两个孩子具有相同的“postnummer”,两个父母具有相同的“postnummer”。因此,当我执行此查询时,我的结果会返回重复项。

我制作此数据库的方式是一个问题,还是我可以将查询更改为不重复。我尝试了Distinct,但似乎没有用,我听说过你可以使用order by或group by。不明白。

所以任何建议都会受到赞赏。 :)

我从运行它得到的输出是

Picture of the result

所以我不希望同一个孩子多次出现

1 个答案:

答案 0 :(得分:0)

问题并不完全清楚。但是,为了将一个父母与特定的孩子联系起来,您可以尝试以下方式:

SELECT Child, MIN(Parent) AS Parent, postnummer FROM (
SELECT barn.förnamn+' '+barn.efternamn AS Child, målsman.förnamn+' '+målsman.efternamn AS Parent, Målsman.postnummer as postnummer
FROM barn INNER JOIN Målsman ON barn.Postnummer = Målsman.Postnummer
WHERE (((Målsman.postnummer) Like '*23*'))
) a
GROUP BY child, postnummer