请耐心等待,这很难解释,我不确定我是否使用了正确的术语。SQL:条件选择内的条件选择
我需要做一个相当复杂的选择。它实际上是一个select语句,它有条件地决定使用哪个字段来过滤select。如果某个日期字段不为空,我需要检查该字段中的值是否在一定范围内。否则,如果该日期字段为空,我需要检查在同一个表的另一个领域,INT场,是在一定范围内:
伪代码:
If [Date] is not null
Get sum (table.value) for rows Date >= dateValue and Date < dateValue
Else
Get sum (table.value) for rows Int >= intValue and Int < intValue
我当前的尝试:
SELECT CASE WHEN a.Date IS NOT NULL THEN
(SUM(CASE WHEN (a.Date >= cal.Date) THEN ABS(a.Value) ELSE 0 END))
ELSE
(SUM(CASE WHEN (b.Days >= 0) THEN ABS(a.Value) ELSE 0 END)
END AS 'A'
有什么建议吗?询问你是否需要更多信息。 在此先感谢。
请检查我的编辑 – gbn 2010-11-02 20:52:35
是的。干杯。我最初有一条或一条语句,但即使日期字段包含数据但不在该范围内,整数字段也会被拖动。没想到在那里添加一个空检查!哎哟! – Damien 2010-11-02 20:57:25