2016-07-11 4 views
1
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} 

私は... IIF(具体的には、クエリの一部を合計を取得していない午前: ,Sum(IIf([fldCallRoute] = "Inbound", [clmIBConnects], 0)) AS clmIBConnectsT-SQL和のIIFクエリ

それは無効な列名「受信」無効な列名「clmIBConnects」を示していますか?

fldCallRoute列はので、私はそのインバウンド列名を言って、なぜわからない?

あなたは文字列を単一引用符 'を使用する必要が
+0

「合計(0)」は常に「0」です。また、 'IIf([fldCallRoute.Value] = [Inbound]、0)'の 'iif'関数の3番目の引数がありません。 –

+0

使用されていないが表示されているものとして、合計(0) – ChrisR

答えて

3

あなたは文字列定数のための単一引用符を必要としています。 caseはANSI標準であり、ほぼすべてのデータベースで使用できます。

SUM(CASE WHEN fldCallRoute = 'Inbound' THEN clmTalk ELSE 0 END) as IBTalk, 
1

。ダブルのqを受信したエントリを持つテーブルt2であります通常は予約語のために使用される列を、示し" uotes:

,Sum(IIf([fldCallRoute] = 'Inbound', [clmIBConnects], 0)) AS clmIBConnects 

また誤植..常に0あるSum(0)、として評価されている6列を持っていますか?

Sum(IIf([fldCallRoute] = 'Inbound', [clmTalk], 0)) AS IBTalk, 

私はiif()オーバーcaseのための好みを持っている: