[英]T-SQL Sum IIf query
SELECT t1.detail_Date AS clmDate
,t1.detail_agentID AS clmPID
,t3.HODCode AS clmHOD
,t1.detail_CallsHandled AS clmIBConnects
,t1.detail_TalkTime AS clmIBTalk
,t1.detail_WrapTime AS clmIBWrap
,t1.detail_HoldTime AS clmIBHold
,t1.detail_HandleTime AS clmIBTotal
,Sum(IIf([fldCallRoute.Value] = [Inbound],0)) AS clmIBConnects
-- ,Sum(IIf([fldCallRoute] = "Inbound", [clmTalk], 0)) AS IBTalk
-- ,Sum(IIf([fldCallRoute] = "Inbound", [clmWrap], 0)) AS IBWrap
-- ,Sum(IIf([fldCallRoute] = "Inbound", [clmTalk] + [clmWrap] + [clmHold], 0)) AS IBTotal
,Sum(0) AS clmOBSignedOn
,Sum(0) AS Preview
,Sum(0) AS OBTalk
,Sum(0) AS OBUpdate
,Sum(0) AS OBWork
,Sum(0) AS OBConnects
-- ,Sum(IIf([fldCallRoute] = "Inbound", [clmHold], 0)) AS IBHold
-- ,Sum(IIf([fldCallRoute] = "Outbound", [clmHold], 0)) AS OBHold}
我沒有得到sum(iif ..部分查詢,更具體地說: ,Sum(IIf([fldCallRoute] = "Inbound", [clmIBConnects], 0)) AS clmIBConnects
它顯示無效的列名稱“入站”嗎?無效的列名稱“ clmIBConnects”?
fldCallRoute
列在表t2
,該列具有條目Inbound,因此我不確定為什么它說列名稱為inbound?
您需要對字符串常量使用單引號:
Sum(IIf([fldCallRoute] = 'Inbound', [clmTalk], 0)) AS IBTalk,
我比iif()
喜歡case
。 case
是ANSI標准,幾乎在所有數據庫中都可用:
SUM(CASE WHEN fldCallRoute = 'Inbound' THEN clmTalk ELSE 0 END) as IBTalk,
您需要對字符串使用單引號'
。 “雙引號"
表示一列,通常用於保留字:
,Sum(IIf([fldCallRoute] = 'Inbound', [clmIBConnects], 0)) AS clmIBConnects
您還有6列被評估為Sum(0)
,始終為0
.. Typo?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.