gpt4 book ai didi

sql - 选择最大日期 T-SQL 子查询

转载 作者:行者123 更新时间:2023-12-02 07:48:10 26 4
gpt4 key购买 nike

我正在尝试使用这样的查询从表中选择行

SELECT     pminf_member, pminf_schmem
, pminf_date, pminf_fund
, pminf_cont, pminf_rate
, pminf_matrix
FROM pe_minvf
WHERE (pminf_member = 4380)
AND (pminf_schmem = 'M')
AND (pminf_date <= '03/30/2011')
AND (pminf_date =
(SELECT MAX(pminf_date) AS Expr1
FROM pe_minvf AS pe_minvf_1
WHERE (pminf_member = 4380)
)
)
AND (pminf_fund = 'LIFESTYLE')

我应该从我的子查询中得到的(我认为)是日期“01/01/2011”,但是当我运行我的查询时,我没有得到任何结果。

如果我用硬编码日期替换子查询,我会返回正确的行。例如

SELECT  pminf_member, pminf_schmem
, pminf_date, pminf_fund
, pminf_cont, pminf_rate
, pminf_matrix
FROM pe_minvf
WHERE (pminf_member = 4380)
AND (pminf_schmem = 'M')
AND (pminf_date <= '03/30/2011')
AND (pminf_date = '01/01/2011')
AND (pminf_fund = 'LIFESTYLE')

此查询返回正确的结果。

知道为什么子查询没有返回最大日期,或者如果是,为什么我没有返回任何行?

谢谢,特里斯坦

最佳答案

您在查询中根据不同的条件进行过滤。

在子查询中是 pminf_fund = 'LIFESTYLE' 但在外部查询中是 pminf_schmem = 'M'

此外,您在外部查询中限制日期,不要在子查询中这样做。

如果您只需要截至“03/30/2011”的最新记录,请使用:

SELECT  TOP 1
pminf_member, pminf_schmem, pminf_date, pminf_fund, pminf_cont, pminf_rate, pminf_matrix
FROM pe_minvf
WHERE pminf_member = 4380
AND pminf_schmem = 'M'
AND pminf_fund = 'LIFESTYLE'
AND pminf_date <= '03/30/2011'
ORDER BY
pminf_date DESC

关于sql - 选择最大日期 T-SQL 子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5485686/

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