gpt4 book ai didi

sql - 组合 SQL 查询以将来自 1 的结果作为第二个参数传递(SQL Server)

转载 作者:行者123 更新时间:2023-12-04 14:35:45 25 4
gpt4 key购买 nike

我对 SQL 有点不熟悉,我正在尝试验证一些已在系统中转换的数据。我最初在转换之前开发的一些查询并没有证明有效。我已经能够追溯源数据并验证转换是否正确,但这是逐个帐户进行的。我想要一个查询来显示完整的数据集。

我已经能够将一个解决方案减少到 2 个查询,但我不知道如何将它们组合成一个部分以显示完整的数据集,其中第一个查询的一个值需要是第二个查询中的一个元素查询。

查询 1

select distinct 
CreatedDate, AccountNum
From
Table1 A
Join
Table2 B on A.Column1 = B.Column1 and a.Column2 = b.Column2
Join
Table3 C on A.Column3 = C.Column3 and A.Column4 = C.Column4
where
Condition A and Condition B

查询 2

Select distinct 
AccountNum, Responsible
From
Table3 D
Join
Table4 E on D.Column1 = E.Column2
where
StartDate <= 'DateValue' and EndDate > 'DateValue'

我想使用查询 1 中的 CreatedDate 值作为查询 2 中的 DateValue,但我还没有找到给出我正在寻找的结果的解决方案.

如果我为每个查询添加一个限定符,比如帐号,我最终会从查询 1 中得到 1 个结果。然后我将那个 CreatedDate 放入查询 2 中,我得到了我想要的结果。如果我在第二次查询中只有帐号,我会得到两个结果,一个是从时间段 A 到 B 的责任值 X,第二个是从时间段 C 到 D 的责任值 Y,这是 CreateDate 值介于两者之间。当我想要那个 Y 值时,我尝试组合这些查询的所有内容都以 X 的 Responsible 值(或没有结果)结束。

我未能成功整合这两个查询,因此我无法将 CreatedDate 值作为参数传递来计算 Responsible 值。

可行的解决方案是为第一个查询的结果创建一个中间表,然后将该表连接到第二个查询。但是,我无权在数据库上创建/插入/更新表/记录,因此我无法使用此方法。

最佳答案

我想你正在找这个

SELECT DISTINCT accountnum, 
responsible
FROM table1 A
JOIN table2 B
ON A.column1 = B.column1
AND a.column2 = b.column2
JOIN table3 C
ON A.column3 = C.column3
AND A.column4 = C.column4
JOIN table4 D
ON D.column1 = C.column2
AND startdate <= createddate
AND enddate > createddate
where Condition A and Condition B

注意:您可能需要将正确的别名名称添加到

关于sql - 组合 SQL 查询以将来自 1 的结果作为第二个参数传递(SQL Server),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39192051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com