![]() |
|
|
|||||||
| Datenbankprogrammierung Fragen zur Anbindung und Programmierung von Datenbanken bzw. Datenbankabfragen |
|
|
|
Themen-Optionen | Thema durchsuchen | Ansicht |
| #1 (permalink) | |||||
|
Stammbenutzer
Kilobyte
Registriert seit: 13.07.2009
Beiträge: 113
Abgegebene Danke: 8
Erhielt 1 Danke für 1 Beitrag
|
Hallo zusammen,
aus einer Java Anwendung schicke ich SQL Abfragen zum Zählen von Werten auf eine Datenbank. Jetzt möchte ich aber z.B. nur ungern 5 einzelne Abfragen abschicken:
sondern eine Abfrage mit Group By verwenden:
Problem ist nun, dass, falls in einer Gruppe 0 Werte vorkommen, nicht 5 Ergebnisse, sondern nur 4 zurückgeliefert werden. Ist es möglich, auch eine 0 zurückzubekommen? Für eine Weiterverarbeitung wäre es nötig / hilfreich, wenn die Rückgabe immer die gleiche Form / Struktur hat. Ich weiß, es ist mehr eine SQL Frage... hoffe, dass sich trotzdem der ein oder andere hier damit besser auskennt. Danke und Gruß, Jens Geändert von Jens81 (15.03.2010 um 10:36 Uhr) |
||||
|
|
|
| #2 (permalink) | |
|
Java-Forum Team
Moderator
Registriert seit: 13.11.2005
Beiträge: 20.026
Abgegebene Danke: 0
Erhielt 426 Danke für 423 Beiträge
|
eine Idee:
du bräuchtest eine Dummy-Tabelle mit Einträgen 1-n, dann ein left join darüber ----- so wie du die Abfrage bisher hast, ist die Reihenfolge nicht gesichert, noch ein ORDER BY?
__________________
Hansa wird Meister. |
|
|
|
| #3 (permalink) | |
|
Stammbenutzer
Kilobyte
Registriert seit: 08.12.2006
Beiträge: 460
Abgegebene Danke: 0
Erhielt 58 Danke für 56 Beiträge
|
Guck dir das mal an: SQL COUNT( NULLIF( .. ) ) Is Totally Awesome
__________________
Hi, my name is not Lance and i'm not an addict! |
|
|
|
| #4 (permalink) | |||||||||||||||||||
|
Stammbenutzer
Kilobyte
Themenstarter
Registriert seit: 13.07.2009
Beiträge: 113
Abgegebene Danke: 8
Erhielt 1 Danke für 1 Beitrag
|
Stimmt, das ORDER BY fehlte natürlich noch. Die Lösung mit der Dummy Tabelle ist möglich, aber nicht wirklich schön...
Wenn es für jede Gruppe Treffer gibt, sieht das Ergebnis z.B. so aus (via Group by Abfrage): 987985 200341 189112 98552 19244 Gibt es aber nicht immer in jeder Gruppe Treffer, könnte auch mal sowas bei raus kommen: 1200921 378871 10923 Nun weiß ich nicht, welches die 2 leeren Gruppen sind... Geändert von Jens81 (15.03.2010 um 12:04 Uhr) |
||||||||||||||||||
|
|
|
||||||||||||||||||
| #5 (permalink) | |||
|
Stammbenutzer
Kilobyte
Registriert seit: 08.12.2006
Beiträge: 460
Abgegebene Danke: 0
Erhielt 58 Danke für 56 Beiträge
|
Dann gib doch die Gruppe mit aus:
Das Problem ist wirklich das da schon viel wegoptimiert wird... Kannst mit Subselects oder UNION arbeiten wenn du eine feste Menge an Gruppen hast. - Dann halt für jeden Subselect gucken ob es eine Ergebniss hat sonst 0 setzen.
__________________
Hi, my name is not Lance and i'm not an addict! |
||
|
|
|
| #6 (permalink) | |
|
Stammbenutzer
Kilobyte
Themenstarter
Registriert seit: 13.07.2009
Beiträge: 113
Abgegebene Danke: 8
Erhielt 1 Danke für 1 Beitrag
|
So wie es ausschaut, werde ich mir die Gruppe mit ausgeben, die leeren / fehlenden Datensätze im Programm ergänzen und die Ergebnisse dann zur Verarbeitung weiterreichen. Scheint dann wohl die performanteste Lösung zu sein.
Hatte gehofft, dass es noch eine (einfache) Möglichkeit gibt, alles im SQL Statement zu lösen. Vielen Dank für eure Ratschläge! |
|
|
|
| #7 (permalink) | |
|
Stammbenutzer
Kilobyte
Themenstarter
Registriert seit: 13.07.2009
Beiträge: 113
Abgegebene Danke: 8
Erhielt 1 Danke für 1 Beitrag
|
Eine ergänzende Frage habe ich allerdings noch:
Wenn man alt.rank nicht nur bei 1 belassen möchte, sondern diesen auch bis 5 hochzählt, ist das in einer Abfrage machbar? (= 25 Ergebnisse, wenn alle Gruppen vorhanden) Gibts sowas wie eine Schleife? oder via Subquery? |
|
|
|
| #8 (permalink) | |
|
Java-Forum Team
Moderator
Registriert seit: 13.11.2005
Beiträge: 20.026
Abgegebene Danke: 0
Erhielt 426 Danke für 423 Beiträge
|
ist mir bisher nicht begegnet, bin immer noch für Dummy-Tabelle,
dort ein Join, schon hast du 25 Elemente voreingestellt, wobei ich das nur theoretisch so sehe, 4 joins teils verschiedener Arten, bestimmt ne Menge zu basteln falls es überhaupt geht
__________________
Hansa wird Meister. |
|
|
|
|
| Lesezeichen |
Latex Maths & Physics Editor ...
|
| Themen-Optionen | Thema durchsuchen |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Problem mit Group By | gast | Datenbankprogrammierung | 1 | 22.10.2008 09:41 |
| Problem mit einer SQL Datenbank | firestone | Java Basics - Anfänger-Themen | 1 | 17.10.2007 17:58 |
| Byte auslesen mit MS SQL Server | thE_29 | Datenbankprogrammierung | 4 | 26.09.2007 17:05 |
| SWT: Group Scrollbar machen. | Aimee | AWT, Swing & SWT | 5 | 07.09.2006 12:12 |
| sql abfrage sortiert nach count in anderer tabelle | Illuvatar | Softwareentwicklung | 6 | 10.06.2006 00:36 |