将两个嵌套的SELECT与DISTINCT结合使用?

时间:2016-04-23 10:49:09

标签: sql select nested filemaker

如何查找一个表的DISTINCT值,查找另一个表中的每个名称并获取值及其名称?

Beleg表格如下:

SELECT DISTINCT Ursprungskonto FROM Beleg
WHERE YEAR ( Valuta ) = 2016

得到我:

1000
1210
1220
1230

对于这些值中的每一个,我需要查找其名称:

SELECT Name FROM Geldkonto
WHERE Kontonr = 1000

结果:

Kasse

在查询结束时,我需要得到以下结果:

1000    Kasse
1210    OneBankName
1220    AnotherBankName
1230    YABN

我正在使用SQL-92(Filemaker)。

非常感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

您可以使用内部联接

SELECT DISTINCT Beleg.Ursprungskonto, Geldkonto.Name 
FROM Beleg 
INNER JOIN Geldkonto
ON Beleg.Ursprungskonto=Geldkonto.Kontonr;

答案 1 :(得分:0)

您可以尝试子查询:

SELECT Kontonr , Name FROM Geldkonto
WHERE Kontonr in (SELECT DISTINCT Ursprungskonto FROM Beleg
WHERE YEAR ( Valuta ) = 2016)

答案 2 :(得分:0)

而不是在加入后应用DISTINCT ,最好在之前执行

SELECT k.Kontonr, k.Name 
FROM Geldkonto AS k
JOIN 
 (
   SELECT DISTINCT Ursprungskonto 
   FROM Beleg
   WHERE YEAR ( Valuta ) = 2016
 ) AS b
ON k.Kontonr = b.Ursprungskonto

这类似于@ rev_dihazum的解决方案,只需使用连接而不是子查询,如果您需要Beleg中的任何其他列,则非常有用。