Das ursprüngliche Problem, das ich zu lösen versuche, ist, dass ich alle Zeilen aus einer bestimmten "verbundenen" Tabelle zeigen muss. Diese sind jedoch manchmal leer ohne Summen und würden normalerweise nicht angezeigt (denke Kategorien und zählt für jeden).Union, die Werte aus der ersten Tabelle ausschließt
Also was ich versuche zu tun ist Union mit einem "0-Wert" -Datensatz, um alle Kategorien anzuzeigen. Aber wenn ich die Union mache, zeigt es eine 0-Wert-Zeile, sowie die normalen Daten. Hier ist ein Beispiel ..
SELECT category_name, COUNT(files_number)
FROM files
LEFT JOIN categories ON categories.category_id = files.category_id
UNION
SELECT category_name, 0
FROM categories
Das gibt mir eine Ergebnismenge, die in etwa so aussieht:
category_name | value
----------------------
open file | 0
open file | 23
closed file | 0
Gibt es einen Weg, um doppelte Nullwert Einträge entfernen? Bitte beachten Sie, dass es in der tatsächlichen Abfrage auch eine komplexe WHERE-Klausel gibt, so dass die Vermeidung von Doppelungen bevorzugt wird.
Ich habe dies in der ursprünglichen Frage vergessen - aber es gibt einige Einschränkungen, denen ich gegenüberstehe, weil dies mit BIRT implementiert wird. Daher kann die "richtige" Antwort für mich die von BIRT auferlegten Einschränkungen widerspiegeln. – Sh4d0wsPlyr