Hi, danke schonmal, werd mir dass nochmal im Detail anschaun mit dem Sum und dem IF.
Bin grad nur am überlegen, ob sich das so bewerkstelligen lässt, hier mal die ganze
Abfrage, ist leider nicht nur an der Stelle unterschiedlich:)
Code:
SELECT
1 as viewID
, COUNT(*) as vGesamt
FROM
tblRes
JOIN tblTskTr ON ResTskTrID = TskTrID
WHERE
ResTskTrID = _tskID
AND
( ResLastFoundTS >= TskTrLastStartTS )
AND
( ResNew = 1 and ResRelevance = 1 ) -- ungelesen und relevant
UNION
SELECT
2 as viewID
, COUNT(*)
FROM
tblRes
JOIN tblTskTr ON ResTskTrID = TskTrID
WHERE
ResTskTrID = _tskID
AND
( ResLastFoundTS >= TskTrLastStartTS )
AND
( ResNew = 0 and ResRelevance = 1 ) -- gelesen und relevant
UNION
SELECT
3 as viewID
, COUNT(*)
FROM
tblRes
JOIN tblTskTr ON ResTskTrID = TskTrID
WHERE
ResTskTrID = _tskID
AND
( ResLastFoundTS >= TskTrLastStartTS )
AND
( ResFavorite = 1 and ResRelevance = 1 ) -- Favoriten
UNION
SELECT
4 as viewID
, COUNT(*)
FROM
tblRes
JOIN tblTskTr ON ResTskTrID = TskTrID
WHERE
ResTskTrID = _tskID
AND
( ResLastFoundTS >= TskTrLastStartTS )
AND
( fnResStatus(ResID) = 98 and ResRelevance = 1 )
UNION
SELECT
5 as viewID
, COUNT(*)
FROM
tblRes
JOIN tblTskTr ON ResTskTrID = TskTrID
WHERE
ResTskTrID = _tskID
AND
( ResLastFoundTS >= TskTrLastStartTS )
AND
( ResValueID = 2 and ResRelevance = 1 ) -- positiv
UNION
SELECT
6 as viewID
, COUNT(*)
FROM
tblRes
JOIN tblTskTr ON ResTskTrID = TskTrID
WHERE
ResTskTrID = _tskID
AND
( ResLastFoundTS >= TskTrLastStartTS )
AND
( ResValueID = 3 and ResRelevance = 1 ) -- neutral
UNION
SELECT
7 as viewID
, COUNT(*)
FROM
tblRes
JOIN tblTskTr ON ResTskTrID = TskTrID
WHERE
ResTskTrID = _tskID
AND
( ResLastFoundTS >= TskTrLastStartTS )
AND
( ResValueID = 4 and ResRelevance = 1 ) -- negativ
UNION
SELECT
8 as viewID
, COUNT(*)
FROM
tblRes
JOIN tblTskTr ON ResTskTrID = TskTrID
WHERE
ResTskTrID = _tskID
AND
( ResLastFoundTS >= TskTrLastStartTS )
AND
( ResRelevance = 0 ) -- alle unrelevanten
UNION
SELECT
9 as viewID
, COUNT(*)
FROM
tblRes
JOIN tblTskTr ON ResTskTrID = TskTrID
WHERE
ResTskTrID = _tskID
AND
( ResLastFoundTS >= TskTrLastStartTS ) -- alle
UNION
SELECT
10 as viewID
, COUNT(*)
FROM
tblRes
JOIN tblTskTr ON ResTskTrID = TskTrID
WHERE
ResTskTrID = _tskID
AND
( ResLastFoundTS >= TskTrLastStartTS )
AND
( ResRelevance = 1 ) AND ( ResValueID <= 1 ); -- unbewertete
Und so würde das Ergebniss aussehen
Code:
"viewID","vNeu","vGesamt"
1,1324,1324
2,0,59
3,0,16
4,,0
5,0,1
6,0,5
7,0,6
8,0,7
9,1324,1390
10,1324,1371
Wie vielleicht schon aufgefallen ist, aus der Abfrage ist das Sum weggefallen,
den Wert brauch ich eigentlich gar nicht mehr. (Ältere Abfrage <.<)
Mit deiner Sum Idee, würde ich dann ja quasi so ein Ergebniss bekommen
[code]
"viewID1","viewID2","viewID3""viewID4","viewID5","viewID6""viewID7","v iewID8","viewID9"
100, 123,11345,113,0,0,34
[code]
Aber ich glaube das Count/Sum mit der IF abfrage ist für diesen Fall nicht einsetzbar*überleg*