Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi 2 SQL-Abfragen kombinieren (https://www.delphipraxis.net/117938-2-sql-abfragen-kombinieren.html)

omata 30. Jul 2008 11:15

Re: 2 SQL-Abfragen kombinieren
 
Ups, da habe ich was übersehen...
SQL-Code:
SELECT c.id, c.itemname, a.alevel, a.itemname,
       s.anzahl AS Anzahl1, p.anzahl As Anzahl2
FROM tblcats c
INNER JOIN tblaccesslevels a
  ON c.alevel = a.alevel
LEFT JOIN (SELECT parentcat, COUNT(*) AS anzahl
           FROM tblsubcats
           WHERE alevel <= 1
           GROUP BY parentcat) s
  ON c.id = s.parentcat
LEFT JOIN (SELECT parentsubcat, COUNT(*) AS anzahl
           FROM tblpics
           GROUP BY parentsubcat) p
  ON s.id = p.parentsubcat
oder meinst du das vielleicht so...
SQL-Code:
SELECT c.id, c.itemname, a.alevel, a.itemname,
       s.anzahl AS Anzahl1, p.anzahl As Anzahl2
FROM tblcats c
INNER JOIN tblaccesslevels a
  ON c.alevel = a.alevel
LEFT JOIN (SELECT parentcat, COUNT(*) AS anzahl
           FROM tblsubcats          
           GROUP BY parentcat) s
  ON c.id = s.parentcat
LEFT JOIN (SELECT parentsubcat, COUNT(*) AS anzahl
           FROM tblpics
           GROUP BY parentsubcat) p
  ON s.id = p.parentsubcat
WHERE c.alevel <= 1

scrat1979 30. Jul 2008 17:04

Re: 2 SQL-Abfragen kombinieren
 
@Omata: Wie gesagt, sieht sehr vielversprechend aus :-) Leider erhalte ich die Fehlermeldung

---------------------------
Error
---------------------------
SQL Error: Unknown column 's.id' in 'on clause'
---------------------------
OK
---------------------------

Ein anpassen ist mir bislang leider nicht gelungen, ich bleibe aber dran :-)

@nahpets: Das ist meiner Lösung sehr ähnlich, ich arbeite nach dem gleichen Prinzip (Spalten mit 0 vorbelegen). Sollte die Lösung von omata jedoch noch anzupassen sein,
wäre die Abfrage für mich um einiges leichter zu verstehen und zu pflegen.

Mal sehen, ob EugenB noch was zusammengebastelt hat *g*

Liebe Grüße,
SCRaT

EugenB 30. Jul 2008 17:59

Re: 2 SQL-Abfragen kombinieren
 
ist nicht die beste Lösung aber zu mindest bekomme ich die richtigen Ergebnisse ^^

SQL-Code:
SELECT c.id, c.itemname, a.alevel,
a.itemname, count(s.id) As Anzahl1, (
SELECT count(p2.id)
FROM tblcats c2
LEFT JOIN tblsubcats s2
ON c2.id = s2.parentcat
LEFT JOIN tblpics p2
ON p2.parentsubcat = s2.id
INNER JOIN tblaccesslevels a2
ON c2.alevel = a2.alevel
WHERE s2.alevel <= 1
AND c2.id = c.id
GROUP BY c2.itemname
) As Anzahl2
FROM tblcats c
LEFT JOIN tblsubcats s
ON c.id = s.parentcat
INNER JOIN tblaccesslevels a
ON c.alevel = a.alevel
WHERE s.alevel <= 1
GROUP BY c.itemname;

omata 30. Jul 2008 22:19

Re: 2 SQL-Abfragen kombinieren
 
Neuer Versuch...
SQL-Code:
SELECT c.id, c.itemname, a.alevel, a.itemname, Anzahl1, Anzahl2
FROM tblcats c
INNER JOIN tblaccesslevels a
  ON c.alevel = a.alevel
LEFT JOIN (SELECT parentcat, COUNT(*) AS anzahl1
           FROM tblsubcats
           WHERE alevel <= 1
           GROUP BY parentcat) s
  ON c.id = s.parentcat
LEFT JOIN (SELECT parentcat, COUNT(*) AS anzahl2
           FROM tblsubcats s
           INNER JOIN tblpics p
             ON s.id = p.parentsubcat
           WHERE alevel <= 1
           GROUP BY parentcat) p
  ON c.id = p.parentcat

scrat1979 3. Aug 2008 21:14

Re: 2 SQL-Abfragen kombinieren
 
Perfekt, vielen Dank!!!

Ich habe nun eine Kombination aus beiden Lösungen verwendet, nun habe ich es hinbekommen!! Ihr habt mir - wie schon so oft - sehr weitergeholfen!!! Vielen Dank dafür!

SCRaT


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz