rolandg1881
Aktiver Benutzer
- Beiträge
- 40
Hallo !
Ich weiß ich habe dieses Thema hier schon mal gepostet und in einem anderen Forum habe ich von ukulele auch schon wertvolle Tipps bekommen. Leider komme ich nicht weiter.
Ich beschreibe "kurz" was ich möchte. Ich habe Bestellungen die aus der Tabelle Kopf (PUR) hier ist das Bestelldatum und die Nummer drin und Tabelle (PIT) hier stehen die Positionen mit den Artikeln (ID's) drin sowie die Preise und Einheiten. Sind über PUR.PK_id und PIT.FK_kopf verknüpft.
Dann gibts noch die Tabelle (ART) wo ich mir zu den ID's die Artikelnamen hole.
Ziel Preis für einen Artikel aus der letzten Bestellung. ART ist über ART.PK_id und PIT.FK_art verknüpft.
Ich habe folgenden "inneren" Select der mal die richtigen Daten liefert. Ich sehe gruppiert die letzte Bestellung (MaxNummer falls es zwei an einem Tag gibt) und die Artikelbezeichnung dazu. Unten in der Tabelle sieht man das es scheinbar die richtigen Werte liefert.
Jetzt schaffe ich es nicht den "äusseren" select so drumrum zu bauen das die Auswertung stimmt:
Innerer Select fett markiert: den äusseren schreib ich nicht fett dazu und ich habe auch nur den oberen Teil weil ich nicht verstehe wie ich den Rest joinen muss. In dem alten Thread (war eine andere Datenbank) habe ich es mit eurer Hilfe geschafft, da hatte ich aber nur einen Join! Der hier lässt mich echt schon verzweifeln.
select
t.MaxDatum,
t.MaxNummer,
t.PK_id,
t.such,
t.name,
PIT.preis,
PIT.pehe,
PIT.PE
FROM (
SELECT
max(PUR.vom) AS MaxDatum,
max(PUR.nummer) AS MaxNummer,
ART.PK_id,
ART.such,
ART.name
from Purchasing$Item_4_2 PIT (NOLOCK)
INNER JOIN Part$Product_2_1 ART (NOLOCK)
ON ART.PK_id = PIT.FK_art
INNER JOIN Purchasing$Purchasing_4_1 PUR (NOLOCK)
ON PUR.PK_id = PIT.FK_kopf
WHERE ART.MANDANT_ID = 3 AND PUR.MANDANT_ID =3 and PUR.vom > '2017-12-31 00:00:00.000' and PUR.ktyp = '(PurchaseOrder)'
GROUP BY ART.PK_id, ART.such,ART.name) t
Vielen Dank
Roland
Ich weiß ich habe dieses Thema hier schon mal gepostet und in einem anderen Forum habe ich von ukulele auch schon wertvolle Tipps bekommen. Leider komme ich nicht weiter.
Ich beschreibe "kurz" was ich möchte. Ich habe Bestellungen die aus der Tabelle Kopf (PUR) hier ist das Bestelldatum und die Nummer drin und Tabelle (PIT) hier stehen die Positionen mit den Artikeln (ID's) drin sowie die Preise und Einheiten. Sind über PUR.PK_id und PIT.FK_kopf verknüpft.
Dann gibts noch die Tabelle (ART) wo ich mir zu den ID's die Artikelnamen hole.
Ziel Preis für einen Artikel aus der letzten Bestellung. ART ist über ART.PK_id und PIT.FK_art verknüpft.
Ich habe folgenden "inneren" Select der mal die richtigen Daten liefert. Ich sehe gruppiert die letzte Bestellung (MaxNummer falls es zwei an einem Tag gibt) und die Artikelbezeichnung dazu. Unten in der Tabelle sieht man das es scheinbar die richtigen Werte liefert.
Jetzt schaffe ich es nicht den "äusseren" select so drumrum zu bauen das die Auswertung stimmt:
Innerer Select fett markiert: den äusseren schreib ich nicht fett dazu und ich habe auch nur den oberen Teil weil ich nicht verstehe wie ich den Rest joinen muss. In dem alten Thread (war eine andere Datenbank) habe ich es mit eurer Hilfe geschafft, da hatte ich aber nur einen Join! Der hier lässt mich echt schon verzweifeln.
select
t.MaxDatum,
t.MaxNummer,
t.PK_id,
t.such,
t.name,
PIT.preis,
PIT.pehe,
PIT.PE
FROM (
SELECT
max(PUR.vom) AS MaxDatum,
max(PUR.nummer) AS MaxNummer,
ART.PK_id,
ART.such,
ART.name
from Purchasing$Item_4_2 PIT (NOLOCK)
INNER JOIN Part$Product_2_1 ART (NOLOCK)
ON ART.PK_id = PIT.FK_art
INNER JOIN Purchasing$Purchasing_4_1 PUR (NOLOCK)
ON PUR.PK_id = PIT.FK_kopf
WHERE ART.MANDANT_ID = 3 AND PUR.MANDANT_ID =3 and PUR.vom > '2017-12-31 00:00:00.000' and PUR.ktyp = '(PurchaseOrder)'
GROUP BY ART.PK_id, ART.such,ART.name) t
Vielen Dank
Roland