AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi 2 SQL-Abfragen kombinieren
Thema durchsuchen
Ansicht
Themen-Optionen

2 SQL-Abfragen kombinieren

Ein Thema von scrat1979 · begonnen am 28. Jul 2008 · letzter Beitrag vom 3. Aug 2008
 
nahpets
(Gast)

n/a Beiträge
 
#10

Re: 2 SQL-Abfragen kombinieren

  Alt 30. Jul 2008, 08:27
Würde Dir das helfen?

SQL-Code:
SELECT c.id, c.itemname, a.alevel, a.itemname, Sum(Anzahl1) As Anzahl1, Sum(Anzahl2) As Anzahl2
FROM
(
  SELECT c.id, c.itemname, a.alevel, a.itemname, count(s.id) As Anzahl1, 0 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
  
union all

  SELECT c.id, c.itemname, a.alevel, a.itemname, 0 as Anzahl 1, count(p.id) As Anzahl2
  FROM tblcats c
  LEFT JOIN tblsubcats s
  ON c.id = s.parentcat
  LEFT JOIN tblpics p
  ON p.parentsubcat = s.id
  INNER JOIN tblaccesslevels a
  ON c.alevel = a.alevel
  WHERE s.alevel <= 1
  GROUP BY c.itemname
) intern
GROUP BY c.id, c.itemname, a.alevel, a.itemname
Probleme der von Dir gestellten Art löse ich eigentlich immer in dieser Form. Bei Oracle, Postgres und SQL-Server funktioniert das ordentlich (andere Datenbanken habe ich nicht im Zugriff).
Zuerst werden die Summen der einen Abfrage gebildet und für die Summe der weiteren Abfrage(n) entsprechende Spalten mit 0 vorbelegt. Die Abfragen werden per Union all zusammengefasst und anschließend werden nochmal Summen über die Zusammenfassung gebildet. Hier werden dann die Anzahlen und ganz viele 0en summiert. Durch's Group By erhält man so einen Einzeiler. Die Abfragen werden aber nicht so komplex sondern bleiben überschaubar.

Stephan
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz