![]() |
Datenbank: MS SQL Server • Version: 2000 • Zugriff über: per ACCESS-Frontend bzw. SQL Server Enterprise Manager
[SQL] zusätzliche Bedingung für INNER JOIN
Hallo Zusammen,
ich möchte eine MS SQL-Server-View per INNER JOIN mit einer bestimmten Tabelle zu einer neuen Sicht verknüpfen. -> ![]() Soweit ist das kein Problem. Nun kann es aber in der Tabelle tPersonal_Aenderungen mehrere Datensätze geben, die zu einem bestimmten Mitarbeiter (tPersonal_fest) gehören. Praktisch ist aber immer nur ein Datensätz aktuell bzw. relevant... und zwar jeweils der, bei dem Aenderungsdatum_Beginn < now() und Aenderungsdatum_Ende > now() ist. Meine Abfrage sieht im Moment wie folgt aus:
SQL-Code:
Ich schätze ich hätte im Seminar "grundlagen SQL" besser aufpassen sollen, aber leider weiß ich einfach nicht mehr, wie ich dem Join eine zusätzliche Bedingung geben kann. Wie gesagt, es sollen nur die aktuellen Datensätze aus tPersonal_Aenderungen Teil der Abfrage sein. Kann mir jemand einen Tip geben?
SELECT TOP 100 PERCENT dbo.sBer_PersPlanUebersicht.PK_tPersonal, dbo.sBer_PersPlanUebersicht.Pk_tPersonal_fest,
dbo.sBer_PersPlanUebersicht.Nachname, dbo.sBer_PersPlanUebersicht.Vorname, YEAR(dbo.sBer_PersPlanUebersicht.Datum) AS Jahr, SUM(dbo.sBer_PersPlanUebersicht.Brutto) AS Brutto, SUM(dbo.sBer_PersPlanUebersicht.Urlaubsgeld) AS Urlaubsgeld, SUM(dbo.sBer_PersPlanUebersicht.Weihnachtsgeld) AS Weihnachtsgeld, SUM(dbo.sBer_PersPlanUebersicht.Einmalzahlung) AS Einmalzahlung, SUM(dbo.sBer_PersPlanUebersicht.VWL_AG) AS VWL_AG, SUM(dbo.sBer_PersPlanUebersicht.BAV_AG) AS BAV_AG, SUM(dbo.sBer_PersPlanUebersicht.Brutto + dbo.sBer_PersPlanUebersicht.Urlaubsgeld + dbo.sBer_PersPlanUebersicht.Weihnachtsgeld + dbo.sBer_PersPlanUebersicht.Einmalzahlung + dbo.sBer_PersPlanUebersicht.VWL_AG + dbo.sBer_PersPlanUebersicht.BAV_AG - dbo.sBer_PersPlanUebersicht.BAV_AG - dbo.sBer_PersPlanUebersicht.BAV_AG) AS SVBrutto, SUM(dbo.sBer_PersPlanUebersicht.Brutto + dbo.sBer_PersPlanUebersicht.Urlaubsgeld + dbo.sBer_PersPlanUebersicht.Weihnachtsgeld + dbo.sBer_PersPlanUebersicht.Einmalzahlung + dbo.sBer_PersPlanUebersicht.VWL_AG + dbo.sBer_PersPlanUebersicht.BAV_AG) AS AGBrutto, SUM(dbo.sBer_PersPlanUebersicht.Nettobetrag - dbo.sBer_PersPlanUebersicht.VWL_Sparbetrag - dbo.sBer_PersPlanUebersicht.Pfaendung) AS zbetrag, SUM(dbo.sBer_PersPlanUebersicht.Nettobetrag) AS Nettobetrag, SUM(dbo.sBer_PersPlanUebersicht.AlleAGAnteile) AS AlleAGAnteile, SUM(dbo.sBer_PersPlanUebersicht.Pauschalsteuer) AS Pauschalsteuer, SUM(dbo.sBer_PersPlanUebersicht.Umlageversicherung1) AS Umlageversicherung1, SUM(dbo.sBer_PersPlanUebersicht.Umlageversicherung2) AS Umlageversicherung2, dbo.tPersonal_Aenderungen.Bat, dbo.tPersonal_Aenderungen.Urlaubsanspruch FROM dbo.sBer_PersPlanUebersicht INNER JOIN dbo.tPersonal_Aenderungen ON dbo.sBer_PersPlanUebersicht.Pk_tPersonal_fest = dbo.tPersonal_Aenderungen.FK_tPersonal_fest GROUP BY dbo.sBer_PersPlanUebersicht.PK_tPersonal, dbo.sBer_PersPlanUebersicht.Nachname, dbo.sBer_PersPlanUebersicht.Vorname, YEAR(dbo.sBer_PersPlanUebersicht.Datum), dbo.sBer_PersPlanUebersicht.Pk_tPersonal_fest, dbo.tPersonal_Aenderungen.Bat, dbo.tPersonal_Aenderungen.Urlaubsanspruch ORDER BY dbo.sBer_PersPlanUebersicht.Nachname vielen Dank, Phill |
Re: [SQL] zusätzliche Bedingung für INNER JOIN
ok Danke :),
hat sich schon erledigt... ich machs einfach per:
SQL-Code:
sofern die Clowns von der Buchhaltung nicht wieder mehrere gültige Datensätze eingegeben haben, dürfte es da eigentlich kein Problem geben.
HAVING (dbo.tPersonal_Aenderungen.Aenderungsdatum_Beginn < { fn NOW() }) AND (dbo.tPersonal_Aenderungen.Aenderungsdatum_Ende > { fn NOW() } OR
dbo.tPersonal_Aenderungen.Aenderungsdatum_Ende IS NULL) lg, Phill |
Re: [SQL] zusätzliche Bedingung für INNER JOIN
SQL-Code:
...
FROM dbo.sBer_PersPlanUebersicht INNER JOIN dbo.tPersonal_Aenderungen ON dbo.sBer_PersPlanUebersicht.Pk_tPersonal_fest = dbo.tPersonal_Aenderungen.FK_tPersonal_fest and dbo.tPersonal_Aenderungen.Aenderungsdatum_Beginn > now() and dbo.tPersonal_Aenderungen.Aenderungsdatum__Ende > now() ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15: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