Neu Eigene Übersicht > Lieferantenbestellungen

DrGreen

Aktives Mitglied
24. Dezember 2017
76
9
Hi Leute,

ich brauche bitte eure Hilfe:

Möchte eine neue "Eigene Übersicht" im Bereich unter den Lieferantenbestellungen um zu sehen ob sich in der markierten Bestellung Positionen befinden welche noch mit einer anderen Bestellung als "in Zulauf" markiert sind, mit folgenden Spalten:

- Artikelnummer
- Artikelname
- Offene Menge
- Bestelldatum
- Bestellnummer
- Lieferant

Vielen Dank im Voraus!

lg
Tom
 

ChristianDZ

Mitglied
10. Februar 2020
33
18
Bitte mal testen

SQL:
SELECT
    allBestellungen.cArtNr AS Artikelnummer,
    allBestellungen.cName AS Artikelname,
    CONVERT(int,allBestellungen.fAnzahlOffen) AS 'Anzahl offen',
    FORMAT(allBestellungen.dErstellt,'dd.MM.yyyy') AS Bestelldatum,
    allBestellungen.cEigeneBestellnummer AS Bestellnr,
    allBestellungen.cFirma AS Lieferant
FROM
    (SELECT
        tLieferantenBestellungPos.kArtikel
    FROM tLieferantenBestellung
    LEFT JOIN tLieferantenBestellungPos
        ON tLieferantenBestellung.kLieferantenBestellung = tLieferantenBestellungPos.kLieferantenBestellung
    WHERE tLieferantenBestellung.kLieferantenBestellung = @Key
    ) AS cBestellung
LEFT JOIN
    (SELECT
        tLieferantenBestellungPos.cName,
        tLieferantenBestellungPos.kArtikel,
        tLieferantenBestellungPos.fAnzahlOffen,
        tLieferantenBestellungPos.cArtNr,
        tLieferantenBestellung.dErstellt,
        tLieferantenBestellung.cEigeneBestellnummer,
        tlieferant.cFirma
    FROM tLieferantenBestellung
    LEFT JOIN tLieferantenBestellungPos
        ON tLieferantenBestellung.kLieferantenBestellung = tLieferantenBestellungPos.kLieferantenBestellung
    LEFT JOIN tlieferant
        ON tLieferantenBestellung.kLieferant = tlieferant.kLieferant
    WHERE tLieferantenBestellungPos.fAnzahlOffen > 0
    ) AS allBestellungen
        ON cBestellung.kArtikel = allBestellungen.kArtikel
 
  • Gefällt mir
Reaktionen: DrGreen

ChristianDZ

Mitglied
10. Februar 2020
33
18
Ach du möchtest nur die fremden Bestellungen sehen. Ja kein Problem. Soll denn dann über alle Positionen in der gewählten Bestellungen überprüft werden, ob da noch offene Mengen in anderen Bestellungenn sind, oder nur wenn in der gewählten Bestellung die Position auch noch offen ist?
 

ChristianDZ

Mitglied
10. Februar 2020
33
18
Diese Variante zeigt dir alle Positionen, aller fremden Bestellungen an, die auch in der gewählten Bestellung enthalten sind. unabhängig davon, ob diese in der gewählten Bestellung komplett geliefert oder noch offen sind.

SQL:
SELECT
    allBestellungen.cArtNr AS Artikelnummer,
    allBestellungen.cName AS Artikelname,
    CONVERT(int,allBestellungen.fAnzahlOffen) AS 'Anzahl offen',
    FORMAT(allBestellungen.dErstellt,'dd.MM.yyyy') AS Bestelldatum,
    allBestellungen.cEigeneBestellnummer AS Bestellnr,
    allBestellungen.cFirma AS Lieferant
FROM
    (SELECT
        
        tLieferantenBestellungPos.kArtikel
    FROM tLieferantenBestellung
    LEFT JOIN tLieferantenBestellungPos
        ON tLieferantenBestellung.kLieferantenBestellung = tLieferantenBestellungPos.kLieferantenBestellung
    WHERE tLieferantenBestellung.kLieferantenBestellung = @Key
    ) AS cBestellung
LEFT JOIN
    (SELECT
        tLieferantenBestellung.kLieferantenBestellung,
        tLieferantenBestellungPos.cName,
        tLieferantenBestellungPos.kArtikel,
        tLieferantenBestellungPos.fAnzahlOffen,
        tLieferantenBestellungPos.cArtNr,
        tLieferantenBestellung.dErstellt,
        tLieferantenBestellung.cEigeneBestellnummer,
        tlieferant.cFirma
    FROM tLieferantenBestellung
    LEFT JOIN tLieferantenBestellungPos
        ON tLieferantenBestellung.kLieferantenBestellung = tLieferantenBestellungPos.kLieferantenBestellung
    LEFT JOIN tlieferant
        ON tLieferantenBestellung.kLieferant = tlieferant.kLieferant
    WHERE tLieferantenBestellungPos.fAnzahlOffen > 0
    ) AS allBestellungen
        ON cBestellung.kArtikel = allBestellungen.kArtikel
WHERE
    allBestellungen.kLieferantenBestellung != @Key
 
  • Gefällt mir
Reaktionen: DrGreen

DrGreen

Aktives Mitglied
24. Dezember 2017
76
9
Ersteres, immer wenn in ieiner Bestellung noch was offen ist, dann möchte ich das gerne unten sehen. Danke dir!
 

ChristianDZ

Mitglied
10. Februar 2020
33
18
Diese Variante überprüft in den fremden Bestellungen nur die Positionen, die in der gewählten Bestellung enthalten UND noch offen sind

SQL:
SELECT
    allBestellungen.cArtNr AS Artikelnummer,
    allBestellungen.cName AS Artikelname,
    CONVERT(int,allBestellungen.fAnzahlOffen) AS 'Anzahl offen',
    FORMAT(allBestellungen.dErstellt,'dd.MM.yyyy') AS Bestelldatum,
    allBestellungen.cEigeneBestellnummer AS Bestellnr,
    allBestellungen.cFirma AS Lieferant
FROM
    (SELECT
        
        tLieferantenBestellungPos.kArtikel
    FROM tLieferantenBestellung
    LEFT JOIN tLieferantenBestellungPos
        ON tLieferantenBestellung.kLieferantenBestellung = tLieferantenBestellungPos.kLieferantenBestellung
    WHERE tLieferantenBestellung.kLieferantenBestellung = @Key AND tLieferantenBestellungPos.fAnzahlOffen > 0
    ) AS cBestellung
LEFT JOIN
    (SELECT
        tLieferantenBestellung.kLieferantenBestellung,
        tLieferantenBestellungPos.cName,
        tLieferantenBestellungPos.kArtikel,
        tLieferantenBestellungPos.fAnzahlOffen,
        tLieferantenBestellungPos.cArtNr,
        tLieferantenBestellung.dErstellt,
        tLieferantenBestellung.cEigeneBestellnummer,
        tlieferant.cFirma
    FROM tLieferantenBestellung
    LEFT JOIN tLieferantenBestellungPos
        ON tLieferantenBestellung.kLieferantenBestellung = tLieferantenBestellungPos.kLieferantenBestellung
    LEFT JOIN tlieferant
        ON tLieferantenBestellung.kLieferant = tlieferant.kLieferant
    WHERE tLieferantenBestellungPos.fAnzahlOffen > 0
    ) AS allBestellungen
        ON cBestellung.kArtikel = allBestellungen.kArtikel
WHERE
    allBestellungen.kLieferantenBestellung != @Key
 
  • Gefällt mir
Reaktionen: DrGreen