WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   SQL Query (http://www.wcm.at/forum/showthread.php?t=161236)

pong 14.03.2005 16:57

SQL Query
 
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

frazzz 14.03.2005 17:16

Wie schaut dazu die Query aus?

Zitat:

Original geschrieben von pong
Darf ich mich einmischen?



etwa 2zeilig :D

T.dot 14.03.2005 18:31

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

pong 14.03.2005 20:00

http://forum.geizhals.at/files/140/rel.png

pong

T.dot 14.03.2005 20:20

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

Farkarich 17.03.2005 20:10

SQL
 
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 :cool:

T.dot 17.03.2005 20:27

stimmt, Access ist ein DBMS *angeblich* ;)

Mich hätt trotzdem interessiert ob meine Query zu brauchen war ;)

pong 17.03.2005 20:32

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

_m3 17.03.2005 20:51

Zitat:

Original geschrieben von T.dot
stimmt, Access ist ein DBMS *angeblich*
Nein, Abszzss ist ein RAD-Tool.
Die draunterliegende Jet-Engine waere gerne ein RDMBS.

pong 17.03.2005 20:56

Zitat:

Original geschrieben von _m3
Nein, Abszzss ist ein RAD-Tool.
Die draunterliegende Jet-Engine waere gerne ein RDMBS.

Gott sei dank, gibt es seinen Senf wieder dazu... was wären wir nur ohne _m3 ;)

pong


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag