我正在运行以下查询以恢复值= 1的最大日期。我遇到了一个问题,但是我试图在第二次返回最大日期时值= 0并显示此结果是一个单独的列。在Vulcan数据库中运行SQL。我的疑问是:
select '1' AS client, max(fielddate) AS 'Value1Date' from table1 where
Value = 1
UNION
select '2' AS client, max(fielddate) AS 'Value1Date' from table2 where
Value = 1
UNION
select '3' AS client, max(fielddate) AS 'Value1Date' from table3 where
Value = 1
这给了我:
Client Value1Date
1 03/01/17
2 02/01/17
3 02/01/17
我的问题是试图获得:
Client Value1Date Value2Date
1 03/01/17 05/01/2017
2 02/01/17 05/07/2017
3 02/01/17 05/09/2017
Value2Date与上述类似,除了max(fielddate)AS' Value2Date'不会有值= 1部分。
非常感谢任何帮助!
由于
答案 0 :(得分:5)
我想你想要:
select '1' AS client,
max(case when value = 1 then fielddate end) AS Value1Date,
max(fieldDate) as max_fieldDate
from table1 ;
注意:您的问题表明您将不同的客户端数据存储在具有相同结构的不同表中。从数据建模和性能角度来看,这通常是一个坏主意。