2016-07-11 8 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} 

Ich bin nicht die Summe bekommen (IIF .. Teil der Anfragen genauer gesagt: ,Sum(IIf([fldCallRoute] = "Inbound", [clmIBConnects], 0)) AS clmIBConnectsT-SQL Sum IIf Abfrage

es zeigt ungültigen Spaltenname 'Eingehend' ungültiger Spaltenname 'clmIBConnects'?

fldCallRoute Säule ist in Tabelle t2, die die Einträge Inbound hat so bin ich nicht sicher, warum die einen Spaltennamen sagen Inbound?

+0

Sie erkennen, dass 'Sum (0)' ist immer '0', nicht wahr? Außerdem fehlt das 3. Argument der 'iif'-Funktion in' IIf ([fldCallRoute.Value] = [Inbound], 0) '. –

+0

Ja Summe (0), da diese nicht verwendet werden, aber sie wollen trotzdem angezeigt werden – ChrisR

Antwort

3

Sie benötigen einfache Anführungszeichen für String-Konstanten:

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

Ich habe eine Vorliebe für case über iif(). case ist ANSI-Standard und in fast allen Datenbanken:

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

Sie benötigen Apostroph verwenden ' für einen String. Doppel q uotes " weisen auf eine Spalte, in der Regel für reservierte Worte verwendet:

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

Sie haben auch 6 Spalten als Sum(0) ausgewertet werden, die immer 0 ist .. Typo?