将两个嵌套的 SELECT 与 DISTINCT 结合起来?
Combining two nested SELECT with DISTINCT?
我如何查找一个 table 的 DISTINCT 值,在另一个 table 中查找每个名称并获得值及其名称作为结果?
Beleg table 看起来像这样:
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)。
非常感谢您的帮助!
您可以使用内部联接
SELECT DISTINCT Beleg.Ursprungskonto, Geldkonto.Name
FROM Beleg
INNER JOIN Geldkonto
ON Beleg.Ursprungskonto=Geldkonto.Kontonr;
您可以尝试子查询:
SELECT Kontonr , Name FROM Geldkonto
WHERE Kontonr in (SELECT DISTINCT Ursprungskonto FROM Beleg
WHERE YEAR ( Valuta ) = 2016)
与其应用 DISTINCT after 你最好在 before:
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
.
中的任何其他列,这很有用
我如何查找一个 table 的 DISTINCT 值,在另一个 table 中查找每个名称并获得值及其名称作为结果?
Beleg table 看起来像这样:
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)。
非常感谢您的帮助!
您可以使用内部联接
SELECT DISTINCT Beleg.Ursprungskonto, Geldkonto.Name
FROM Beleg
INNER JOIN Geldkonto
ON Beleg.Ursprungskonto=Geldkonto.Kontonr;
您可以尝试子查询:
SELECT Kontonr , Name FROM Geldkonto
WHERE Kontonr in (SELECT DISTINCT Ursprungskonto FROM Beleg
WHERE YEAR ( Valuta ) = 2016)
与其应用 DISTINCT after 你最好在 before:
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
.