Ich habe zwei Tabelle Tabelle:Postgresql: Wählen Summe mit unterschiedlichen Bedingungen
I. Tabelle 1 wie folgt aus:
------------------------------------------
codeid | pos | neg | category
-----------------------------------------
1 | 10 | 3 | begin2016
1 | 3 | 5 | justhere
3 | 7 | 7 | justthere
4 | 1 | 1 | else
4 | 12 | 0 | begin2015
4 | 5 | 12 | begin2013
1 | 2 | 50 | now
2 | 5 | 33 | now
5 | 33 | 0 | Begin2011
5 | 11 | 7 | begin2000
II. Tabelle 2 wie folgt:
------------------------------------------
codeid | codedesc | codegroupid
-----------------------------------------
1 | road runner | 1
2 | bike warrior | 2
3 | lazy driver | 4
4 | clever runner | 1
5 | worker | 3
6 | smarty | 1
7 | sweety | 3
8 | sweeper | 1
Ich möchte dieses Ergebnis haben, wie zwei (oder mehr) Bedingungen:
- Summe pos und neg, wo codegroupid IN ('1', '2', '3')
- aber nicht pos und neg summieren, wenn Kategorie wie 'beginnen%'
So mögen das Ergebnis dieses:
------------------------------------------
codeid | codedesc | sumpos | sumneg
-----------------------------------------
1 | roadrunner | 5 | 55 => (sumpos = 3+2, because 10 have category like 'begin%' so doesn't sum)
2 | bike warrior | 5 | 33
4 | clever runner | 1 | 1
5 | worker | 0 | 0 => (sumpos=sumneg=0) becase codeid 5 category ilike 'begin%'
Gruppe nach CodeID, Codedesk;
Summierung ist Summe (pos), wobei die Kategorie NICHT ILIKE '% beginnt', ABER wenn die Kategorie ILKIE 'begin%' bewirkt, werden alle pos-Werte zu Null (0);
Summierung ist Summe (neg) wo die Kategorie NICHT ILIKE '% beginnt', ABER wenn Kategorie ILKIE 'begin%' bewirkt, werden alle negativen Werte zu Null;
Irgendwelche Ideen, wie es geht?
Sollte das Ergebnis haben Aufzeichnungen für alle codeids (1 - 8)? Ich dachte, vielleicht wollten Sie nur Datensätze, bei denen codegroupid = 1 oder 2 ist, aber Ihr Ergebnis zeigt worker (codegroupid = 3). Es ist nicht klar, ob Ihre Ergebnismenge nur eine Teilmenge anzeigt. –
Es tut mir leid, ich habe coudegroupid zu 1 oder 2 oder 3 bearbeitet. Vielen Dank. – bandungeuy