![]() |
Datenbank: FB • Version: 1.5 • Zugriff über: egal
Sum()-Daten aus 2 Tabellen in einer Query
Hallo #,
ich möchte die 2 Summen pro Projekt (Material, Zeit) in einer Query ausgeben. Bisher habe ich folgendes:
SQL-Code:
Jetzt habe ich zwar beide Summen, die stehen aber untereinander.
Select Sum(BillValue) As Value, 1 As Flag, Project.Id, Project.Number
From Bill Join Project On Project.Id=Bill.ProjectId Group By ProjectId, Project.Number Union Select Sum(ProjectTime) As Value, 2 As Flag, Project.Id, Project.Number From ProjectTime Join Project On Project.Id=ProjectTime.ProjectId Group By ProjectId, Project.Number Mit einem View und order by Number (oder ab FB2 direkt mit select * from (<siehe oben>) order by number) würde ich auch die Projekte untereinander haben. Ich will aber nur eine Zeile pro Projekt. Über eine SP könnte ich mir zuerst per "For Select Select Sum(BillValue)", die Materialsummen der Projekte geben lassen, dann für jedes Projekt die Zeitsummen ermitteln. Was ist aber mit Projekten, die nicht in der Bill-Tabelle stehen. OK, die könnte ich mir nachträglich auch noch holen. Ist aber ziemlich viel Aufwand für so ein bissel Output. Wie würdet ihr vorgehen. FB2 steht beim Kunden erst mal nicht zur Diskussion (er hat noch Programme laufen,, die maximal FB1.5 erlauben). Heiko |
Re: Sum()-Daten aus 2 Tabellen in einer Query
Ohne Gewähr, da aus dem Kopf dahergetippselt:
SQL-Code:
SELECT SUM(CASE B.BillValue WHEN NULL THEN 0 ELSE B.BillValue END) AS BValue,
SUM(CASE PT.ProjectTime WHEN NULL THEN 0 ELSE PT.ProjectTime END) AS PTime, P.id, P.Number FROM Project P LEFT JOIN ProjectTime PT ON PT.ProjectId = P.Id LEFT JOIN Bill B ON B.ProjectId = P.Id GROUP BY P.Id, P.Number |
Re: Sum()-Daten aus 2 Tabellen in einer Query
Hallo,
unter FB1.5 meckert er das NULL im Case an, unter FB2.0 nicht. Dummerweise steht ausserdem die ProjectId nicht direkt in ProjectTime ;( Ich habe das jetzt mit einer SP gemacht puhhhhh Mal ausdrucken, wegpackne, falls doch auf FB2 gewechselt wird, könnte man die SP ja ändern. Danke trotzdem! Heiko |
Re: Sum()-Daten aus 2 Tabellen in einer Query
Funktioniert
SQL-Code:
?
... CASE WHEN B.BillValue is NULL THEN 0 ELSE B.BillValue END ...
|
Re: Sum()-Daten aus 2 Tabellen in einer Query
Hallo,
ja, unter FB2. Heiko |
Re: Sum()-Daten aus 2 Tabellen in einer Query
Und so?
SQL-Code:
Laut
SELECT SUM(CASE WHEN (B.BillValue IS NULL) THEN 0 ELSE B.BillValue END) AS BValue,
SUM(CASE WHEN (PT.ProjectTime IS NULL) THEN 0 ELSE PT.ProjectTime END) AS PTime, P.id, P.Number FROM Project P LEFT JOIN ProjectTime PT ON PT.ProjectId = P.Id LEFT JOIN Bill B ON B.ProjectId = P.Id GROUP BY P.Id, P.Number ![]() |
Re: Sum()-Daten aus 2 Tabellen in einer Query
Hallo,
mit Klmmmern geht es jetzt schon mal weiter ... Da ist aber noch eine andere Tabelle mit im Spiel, muss ich heute abend mal basteln. Danke Heiko |
Re: Sum()-Daten aus 2 Tabellen in einer Query
Vielleicht so...
SQL-Code:
Gruss
SELECT id, number, SUM(value) value
FROM (SELECT SUM(billvalue) AS value, 1 AS flag, p.id, p.number FROM bill x INNER JOIN project p ON p.id = x.projectid GROUP BY p.id, p.number UNION ALL SELECT SUM(projecttime) AS value, 2 AS flag, p.id, p.number FROM projecttime x INNER JOIN project p ON p.id = x.projectid GROUP BY p.id, p.number) x GROUP BY id, number Thorsten |
Re: Sum()-Daten aus 2 Tabellen in einer Query
Hallo,
ja, union hatte ich auch schon drin, die 2 Zeiten sollen aber nebeneinander stehen, die XXX (aktuell SP) wird direkt aus Excel heraus ausgerufen, ohne noch was daran zu machen. Heiko |
Re: Sum()-Daten aus 2 Tabellen in einer Query
Achso, nebeneinander...
SQL-Code:
Gruss
SELECT p.id, p.number, billvalue, projecttime
FROM project p LEFT JOIN (SELECT projectid AS id, SUM(billvalue) AS billvalue FROM bill GROUP BY projectid) a ON p.id = a.id LEFT JOIN (SELECT projectid AS id, SUM(projecttime) AS projecttime FROM projecttime GROUP BY projectid) b ON p.id = b.id Thorsten |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 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