![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Inventar
![]() |
![]() Hallo, da ich nicht mehr ganz so fit in SQL bin (und wars auch noch nie) ich derzeit aber ein Problem zu lösen habe, hoffe dass mir hier geholfen werden kann. Vorweg noch an _m3 "Wenns nichts sinnvolles zu sagen hast, dann lass es bitte, mit Ergebnissen div. Suchmaschinen bin ich bestens versorgt"
So jetzt zum eigentlichen Kern des Posts: Es erfolgt der Lesezugriff auf 3 Tabellen (tab.a, tab.b, tab.c) Aus dem Select auf tab.a erfolgt mittels where-a ein Ergebnis mit x Zeilen, für jede dieser Ergebniszeilen wird mittels where-b in einer Select-Query wieder x Zeilen ermittelt und für jede dieser Ergebniszeilen wird ein sum() aus tab.c ermittelt. Schlussendlich sollen das tab.c.sum() und ein tab.a.* als Ergebnis zurückgeliefert werden... Wie schaut dazu die Query aus? pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug Nicht klicken! Erstposteralarm/Beschwerde/Kummerkasten Verplattet |
![]() |
![]() |
![]() |
#2 | |
Inventar
![]() Registriert seit: 11.01.2003
Beiträge: 5.292
|
![]() Wie schaut dazu die Query aus?
Zitat:
etwa 2zeilig ![]()
____________________________________
pssst tanj |
|
![]() |
![]() |
![]() |
#3 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() Wennst ein anschauliches Bsp hättest, könnt ich dir eher helfen
![]() also du willst mal x-zeilen aus tab.a mit bedinung irgendwas select * from A where a.X=0815 dann für jede dieser Zeilen ein Where mit Tabelle B fragt sich halt ob A mit B irgendwie verknüpft ist. daher entweder: select * from A inner join B on A.ID=B.ID where a.X=0815 AnD b.X=4711 oder select * from A,B where A.X=0815 AnD B.X=4711 oder select * from A,B where A.ID=B.ID AND A.X=0815 AND B.X=4711 oder Select * from B where A.ID=(Select A_ID From A Where a.X=0815) AND B.X=4711 davon dann eine Summe aus Tabelle C, fragt sich wiederum mit welcher Tabelle die verknüft ist: kann zb. so aussehen: Select sum(X) from C where C.ID=Select B.ID from B where A.ID=(Select A_ID From A Where a.X=0815) AND B.X=4711 das ist alles ziemlich wirr, aber wie gesagt: mehr Angaben => bessere Lösung |
![]() |
![]() |
![]() |
#4 |
Inventar
![]() |
![]() ![]() pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug Nicht klicken! Erstposteralarm/Beschwerde/Kummerkasten Verplattet |
![]() |
![]() |
![]() |
#5 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() something like this:
select tab.a.*,sum(tab.c.summspalte) from tab.a inner join tab.b on tab.a.a_id=tab.b.a_id inner join tab.c on tab.b.b_id=tab.c.b_id where tab.a.irgendwas=irgendwas and tab.b.irgendwas2=irgendwas2 group by tab.a.spalte1, tab.a.spalte2, tab.a.spalte3 statt nach allen zeilen zu gruppieren, reicht es (je nach sql-dialekt) auch nur nach der id-spalte zu gruppieren |
![]() |
![]() |
![]() |
#6 |
Senior Member
![]() |
![]() Hi
Wär ned blöd wennst auch noch dazuschreibst wo du das Statement ausführen willst, denn der Dialkt von Oracle is zB anders wie in MySQL, über Access reden wir gar ned weil dass is keine DB ![]() |
![]() |
![]() |
![]() |
#7 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() stimmt, Access ist ein DBMS *angeblich*
![]() Mich hätt trotzdem interessiert ob meine Query zu brauchen war ![]() |
![]() |
![]() |
![]() |
#8 |
Inventar
![]() |
![]() Hallo T.dot war leider nicht zu gebrauchen, da es die - mir gesetzte - 4k Grenze gesprengt hat, habs somit in 2 aufgeteilt
![]() Danke für eure Hilfe pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug Nicht klicken! Erstposteralarm/Beschwerde/Kummerkasten Verplattet |
![]() |
![]() |
![]() |
#9 | |
Inventar
![]() Registriert seit: 24.09.2001
Beiträge: 7.335
|
![]() Zitat:
Die draunterliegende Jet-Engine waere gerne ein RDMBS.
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org . |
|
![]() |
![]() |
![]() |
#10 | |
Inventar
![]() |
![]() Zitat:
![]() pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug Nicht klicken! Erstposteralarm/Beschwerde/Kummerkasten Verplattet |
|
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|