我正在用MS Access编写SQL语句,我想知道如何在JOIN中嵌套SELECT DISTINCT语句?
目前我正在编写2个查询以获得输出(2个步骤):
第一个查询是一个简单的DISTINCT语句。 第二个查询是在1中创建的查询的JOIN。
如何在联接中嵌套DISTINCT语句以便在一个步骤中执行操作?
SELECT DISTINCT tblFinalIssuerNames_ReverseRepos.ISIN, tblFinalIssuerNames_ReverseRepos.IssuerCode
FROM tblFinalIssuerNames_ReverseRepos;
SELECT QSel_CollateralReposII.ISIN, QSel_CollateralReposII.MarketValueUSD, QSelDistinctISINs.IssuerCode
FROM QSel_CollateralReposII INNER JOIN QSelDistinctISINs ON QSel_CollateralReposII.ISIN = QSelDistinctISINs.ISIN;
我正在考虑类似下面的内容,但语法错误......
SELECT QSel_CollateralReposII.ISIN, QSel_CollateralReposII.MarketValueUSD, tblFinalIssuerNames_ReverseRepos.IssuerCode
FROM QSel_CollateralReposII INNER JOIN tblFinalIssuerNames_ReverseRepos ON SELECT DISTINCT QSel_CollateralReposII.ISIN = tblFinalIssuerNames_ReverseRepos.ISIN;
答案 0 :(得分:2)
我无法测试允许的内容和Access中的内容,但您可以将查询中的QSelDistinctISINs
替换为定义它的查询,只需将其放在括号内并为其指定别名即可 - d
以下{。}}这是有效的SQL语法:
SELECT
r.ISIN,
r.MarketValueUSD,
d.IssuerCode
FROM
QSel_CollateralReposII r
INNER JOIN
( SELECT DISTINCT
ISIN,
IssuerCode
FROM
tblFinalIssuerNames_ReverseRepos
) d
ON r.ISIN = d.ISIN ;