Hallo,
mit u. a. Tabelle möchte ich gerne eine SQL stricken, die mir aggregiert alle gleichen OU/SID/CA/CO ausgibt, mit dem höchsten Wert aus der "Mischung" von SM-Wert und UpID.
tblTest
Ich habe eine Lösung für die NICHT NULL-Werte gefunden, aber diese würde ich auch benötigen...
Hier meine Lösung:
Erhaltenes Ergebnis:
Gewolltes Ergebnis:
Hätte mir jemand evtl. eine Lösung?
mit u. a. Tabelle möchte ich gerne eine SQL stricken, die mir aggregiert alle gleichen OU/SID/CA/CO ausgibt, mit dem höchsten Wert aus der "Mischung" von SM-Wert und UpID.
tblTest
OU | SM | SID | CA | CO | UpID | Betrag |
---|---|---|---|---|---|---|
000 | 1 | 3333 | 000-1234 | 11111111 | ISET4711 | 10 |
000 | 2 | 3333 | 000-1234 | 22222222 | ISET4711 | 20 |
000 | 3 | 3333 | 000-1234 | 11111111 | ISET4711 | 30 |
000 | 3 | 3333 | 000-1234 | 22222222 | ISET4711 | 40 |
000 | 3 | 3333 | 000-1234 | 22222222 | ISET4711 | 50 |
000 | 3 | 3333 | 000-1234 | ISET4711 | 60 | |
000 | 3 | 3333 | ISET4711 | 70 | ||
000 | 3 | 3333 | 22222222 | ISET4711 | 80 |
Ich habe eine Lösung für die NICHT NULL-Werte gefunden, aber diese würde ich auch benötigen...
Hier meine Lösung:
SQL:
SELECT t1.OU, t1.SID, t1.CA, t1.CO, (FORMAT(t1.SM,'00') & t1.UpID) AS LatestFC, SUM(t1.Betrag) AS [Sum Total]
FROM tblTest AS t1,
(
SELECT t2.OU, t2.SID, t2.CA, t2.CO, MAX(t2.LatestFCb) AS LatestFCa
FROM
(
SELECT tblTest.OU, tblTest.SID, tblTest.CA, tblTest.CO, FORMAT(tblTest.SM,'00') & tblTest.UpID AS LatestFCb, Sum(tblTest.Betrag) AS [Yearly Total]
FROM tblTest
GROUP BY tblTest.OU, tblTest.SID, tblTest.CA, tblTest.CO, (FORMAT(tblTest.SM,'00') & tblTest.UpID)
ORDER BY tblTest.OU, tblTest.SID, tblTest.CA, tblTest.CO
)
AS t2
GROUP BY t2.OU, t2.SID, t2.CA, t2.CO
)
AS t3
WHERE t1.OU = t3.OU
AND t1.SID = t3.SID
AND (FORMAT(t1.SM,'00') & t1.UpID) = t3.LatestFCa
AND t1.CA = t3.CA
AND t1.CO = t3.CO
GROUP BY t1.OU, t1.SID, t1.CA, t1.CO, (FORMAT(t1.SM,'00') & t1.UpID)
ORDER BY t1.OU, t1.SID, t1.CA, t1.CO;
Erhaltenes Ergebnis:
OU | SID | CA | CO | LatestFC | Sum Total |
---|---|---|---|---|---|
000 | 3333 | 000-1234 | 11111111 | 03ISET4711 | 30 |
000 | 3333 | 000-1234 | 22222222 | 03ISET4711 | 90 |
Gewolltes Ergebnis:
OU | SID | CA | CO | LatestFC | Sum Total |
---|---|---|---|---|---|
000 | 3333 | 000-1234 | 11111111 | 03ISET4711 | 30 |
000 | 3333 | 000-1234 | 22222222 | 03ISET4711 | 90 |
000 | 3333 | 000-1234 | 03ISET4711 | 60 | |
000 | 3333 | 03ISET4711 | 70 | ||
000 | 3333 | 22222222 | 03ISET4711 | 80 |
Hätte mir jemand evtl. eine Lösung?