我正在嘗試通過創建 1 個 case 陳述句來增加 SQL 生成的列“Counter”。在我的案例陳述中,我收到 Counter 的錯誤“無效列”。任何幫助表示贊賞。
SELECT 0 as Counter(Not part of any table),
CASE
WHEN dateadd(HOUR, -1,GETDATE()) >= max (a.UPDATED_DATE)
THEN
Counter 1
WHEN dateadd(HOUR, -1,GETDATE()) >= max (b.UPDATED_DATE)
THEN
Counter 1
ELSE
Counter 0
END as Counter
FROM dbo.My_Dates a, Client_Dates b
uj5u.com熱心網友回復:
在黑暗中拍攝。目前尚不清楚您需要對行進行計數的順序或兩個表之間的關系是什么。
with m as (
SELECT *,
case when max(a.UPDATED_DATE) over () > max(b.UPDATED_DATE) over ()
then max(a.UPDATED_DATE) over () else max(b.UPDATED_DATE) over () end as last_update
FROM dbo.My_Dates a, Client_Dates b /* this cross join surely isn't right */
)
select
count(case when dateadd(hour, -1, getdate()) >= last_update then 1 end)
over (order by ??)
from m;
根據下面的評論,您似乎只需要計算一堆表格中的最大值:
with d(last_updated) as (
select max(UPDATED_DATE) from T1 union all
select max(UPDATED_DATE) from T2 union all ...
select max(UPDATED_DATE) from T16
)
select count(case when dateadd(hour, -1, getdate()) >= last_update then 1 end) from d;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/337062.html
標籤:sql sql-server 查询语句 案件
上一篇:使用SQL進行登錄、注銷跟蹤
