Bitte helfen Sie mir, wie dieses ProblemMsg 116, Ebene 16, Status 1
fixiertMsg 116, Ebene 16, Status 1, Prozedur openclosebycat, Zeile 18
nur ein Ausdruck in der Auswahl angegeben werden können Liste, wenn die Unterabfrage nicht mit EXISTS eingeführt wird.Msg 116, Ebene 16, Status 1, Prozedur openclosebycat, Zeile 20
In der Auswahlliste kann nur ein Ausdruck angegeben werden, wenn die Unterabfrage nicht mit EXISTS eingeführt wird.
Mein Code:
select distinct
(SELECT COUNT(*)
FROM dbo.PROBS
WHERE (STATUS LIKE 'closed')
AND (OPEN_TIME >= @DateFrom)
AND (CLOSE_TIME <= @DateTo)) AS closen,
(SELECT NUMBER, STATUS, ID
FROM dbo.PROBS
WHERE (STATUS LIKE 'closed')
AND (OPEN_TIME >= @DateFrom)
AND (CLOSE_TIME <= @DateTo)) AS closedet,
(SELECT NUMBER, STATUS, ID
FROM dbo.PROBS
WHERE (STATUS LIKE 'open')
AND (OPEN_TIME >= @DateFrom)
AND (CLOSE_TIME <= @DateTo)) AS opendet,
(SELECT COUNT(*)
FROM dbo.PROBS
WHERE (STATUS = 'closed')
AND (CATEGORY = 'problem')
AND (OPEN_TIME >= @DateFrom)
AND (CLOSE_TIME <= @DateTo)) AS closeporb,
(SELECT COUNT(*)
FROM dbo.PROBS
WHERE (STATUS = 'closed')
AND (CATEGORY = 'request for information')
AND (OPEN_TIME >= @DateFrom)
AND (CLOSE_TIME <= @DateTo)) AS closereinfo,
(SELECT COUNT(*)
FROM dbo.PROBS
WHERE (STATUS = 'closed')
AND (CATEGORY = 'incident')
AND (OPEN_TIME >= @DateFrom)
AND (CLOSE_TIME <= @DateTo)) AS closeincid,
(SELECT COUNT(*)
FROM dbo.PROBS
WHERE (STATUS = 'closed')
AND (CATEGORY = 'complaint')
AND (OPEN_TIME >= @DateFrom)
AND (CLOSE_TIME <= @DateTo)) AS closecomp,
(SELECT COUNT(*)
FROM dbo.PROBS
WHERE (STATUS = 'open')
AND (CATEGORY = 'problem')
AND (OPEN_TIME >= @DateFrom)
AND (CLOSE_TIME <= @DateTo)) AS openporb,
(SELECT COUNT(*)
FROM dbo.PROBS
WHERE (STATUS = 'open')
AND (CATEGORY = 'request for information')
AND (OPEN_TIME >= @DateFrom)
AND (CLOSE_TIME <= @DateTo)) AS openreinfo,
(SELECT COUNT(*)
FROM dbo.PROBS
WHERE (STATUS = 'open')
AND (CATEGORY = 'incident')
AND (OPEN_TIME >= @DateFrom)
AND (CLOSE_TIME <= @DateTo)) AS openincid,
(SELECT COUNT(*)
FROM dbo.PROBS
WHERE (STATUS = 'open')
AND (CATEGORY = 'complaint')
AND (OPEN_TIME >= @DateFrom)
AND (CLOSE_TIME <= @DateTo)) AS opencomp,
(SELECT COUNT(*)
FROM dbo.PROBS
WHERE (STATUS LIKE 'open')
AND (OPEN_TIME >= @DateFrom)
AND (CLOSE_TIME <= @DateTo)) AS openn
FROM
dbo.PROBS
Sieht aus wie Sie Prozedur haben 'openclosebycat', die nicht vollständig auf eine Frage eingefügt wird und Problem steht in Zusammenhang mit dem 'EXISTS' Schlüsselwort, das ebenfalls fehlt. – Fka
Sie müssen den gesamten Code unbedingt durch die entsprechende CASE-Anweisung ersetzen. Es gibt keinen Grund, all diese Unterabfragen in der Select-Anweisung auszuführen. Das besondere Problem hier ist, dass jede Ihrer Subselects nur ein Ergebnis zurückgeben kann, einige geben 3 zurück (NUMBER, STATUS, ID). –