在以下查询中,开始/结束列是日期时间字段。从多个字段中选择最大/最小值
我应该如何修改这个查询来获得两个更多的列,一个是最小日期,另一个是最大日期(所有6个日期时间字段和所有行)在每一行中重复。
或者,我怎样才能创建一个新的查询,返回这些2(最小/最大)日期,当然是相同的结果集?
非常感谢! (我想为这两个SQL Server 2005和Sybase ASE的12.5.4答案)
select erg_mst.code,
erg_types.perigrafh,
erg_mst.FirstBaseStart,
erg_mst.FirstBaseFinish,
erg_mst.LastBaseStart,
erg_mst.LastBaseFinish ,
erg_mst.ActualStart,
erg_mst.ActualFinish
from erg_mst inner join
erg_types on erg_mst.type = erg_types.type_code
where erg_mst.activemodule = 'co'
and (
FirstBaseStart <> NULL OR
FirstBaseFinish <> NULL OR
LastBaseStart <> NULL OR
LastBaseFinish <> NULL OR
ActualStart <> NULL OR
ActualFinish <> NULL
)
order by isnull(FirstBaseStart,isnull(LastBaseStart,ActualStart))
呃...不要使用'FirstBaseStart <> NULL',而是'FirstBaseStart IS NOT NULL',否则它将无法按预期工作,具体取决于ANSI NULL设置。 – Lucero 2010-03-05 09:32:39
非常感谢,我会牢记这一点! – 2010-03-05 10:00:15