![]() |
Datenbank: MS SQL Server 2000 • Zugriff über: ADO
Join mit Aggregatfunktion ?
Hallo Freunde des DP - Forums,
ich habe da mal ne Frage: ich habe 2 Tabellen, in einer stehen die geplanten und geleisteten Arbeitsstunden (B) drin (noch divers aufgeschüsselt) in der anderen Tabelle sind die Anwesenheit der Mitarbeiter pro Tag (A) (bzw. ihre Abwesenheit) enthalten. Ich will nun diese 3 Werte für die letzten 6 Tage mit einer sp anzeigen: select A.Datum, SUM(B.MHPLAN) as PLANAH, SUM(B.MHISTBDE3) as IST_AH, SUM(cast(A.Wert as dec(9,0))) as Kapazitaet from UPLAN_MAIN A join MGSI B on A.Datum=B.Datum where isnumeric(A.Wert)=1 and A.Datum<=GetDate() and A.Datum>=GetDate()-6 Group by A.Datum Die sp läuft durch, es stehen aber unmögliche Werte drin. Was ist falsch? Hendrik |
Re: Join mit Aggregatfunktion ?
A.Wert wird für jede Datenzeile summiert. Also A*B.
|
Re: Join mit Aggregatfunktion ?
Moin,
ich habe keine Ahnung was du da vorhast bzw. was da falsch läuft. Aber ich würde einfach mal eine übersichtlichere Darstellung wählen, dann kann man dir auch besser helfen. Wenn es um Tagesberechnungen geht, würde ich nicht einfach eine Zahl addieren oder abziehen. Dafür ist DATEADD da. Einen Bereich kann man sehr gut mit BETWEEN eingrenzen. Und schon ist die Anweisung vielleicht mit einem Blick verständlich.
SQL-Code:
MfG
SELECT a.datum,
SUM(b.mhplan) AS planah, SUM(b.mhistbde3) AS ist_ah, SUM(CAST(a.wert AS DEC(9, 0))) AS kapazitaet FROM uplan_main a INNER JOIN mgsi b ON a.datum = b.datum WHERE ISNUMERIC(a.wert) = 1 AND a.datum BETWEEN DATEADD(dd, -6, GETDATE()) AND GETDATE() GROUP BY a.datum Thorsten |
Re: Join mit Aggregatfunktion ?
Zitat:
Hendrik |
Re: Join mit Aggregatfunktion ?
Wenn die Ergebnisse nicht stimmen, dann ist vielleicht die Join-Bedingung nicht vollständig bzw. richtig und lässt zu viele Kombinationen zu.
Schaue dir das Ergebnis mal ohne die Summe an:
SQL-Code:
select A.Datum, B.MHPLAN, B.MHISTBDE3, A.Wert
from UPLAN_MAIN A join MGSI B on A.Datum=B.Datum where isnumeric(A.Wert)=1 and A.Datum<=GetDate() and A.Datum>=GetDate()-6 order by A.Datum |
Re: Join mit Aggregatfunktion ?
Zitat:
Deshalb noch mal meine Frage: " Ist ein join über Tabellen mit jeweiligen Aggregatfunktionen überhaupt möglich? Wenn ja, wie???" Hendrik |
Re: Join mit Aggregatfunktion ?
Zitat:
Gehören die Sätze denn alle zusammen? Ich meine jetzt Fehler wie dass es aus UPLAN_MAIN mehrere Sätze für ein Datum geben kann, beim Join aber jedem Datem alle Sätze aus MGSI zugeordnet werden, auch die die eigentlich nicht dazu gehören. Wenn dies so ist, dann fehlt eine Bedingung im Join. Zitat:
2. Genau so wie du es tust |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 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 by Thomas Breitkreuz