Hallo miteinander,
ich hätte eine kleine Frage zur SQL-Abfrage. Grundsätzlich funktioniert es hervorragend, ich würde gerne aber auch einen anderen Preis aus der Datenbank abfragen. Mit tArtikel.fEKNetto ist alles okay. Versuche ich es aber mit tliefArtikel.fEKNetto bekomme ich eine Fehlermeldung, der mehrteilige Bezeichner tliefArtikel.fEKNetto konnte nicht gefunden werden. Muss da bei Select noch was ergänzt werden? Habe leider keine SQL-Kenntnisse.
SELECT
tArtikel.cArtNr AS Artikelnummer,
MAX(tArtikelBeschreibung.cName) AS Artikelname,
SUM(
(ISNULL(tWarenLagerEingang.fAnzahl, 0.0) - ISNULL(Warenausgang.fAnzahl, 0.0))
* ISNULL(tliefArtikel.fEKNetto, 0.0)
) AS [Einkaufspreis Gesamt],
CASE
WHEN SUM(ISNULL(tWarenLagerEingang.fAnzahl, 0.0) - ISNULL(Warenausgang.fAnzahl, 0.0)) <> 0
THEN
SUM(
(ISNULL(tWarenLagerEingang.fAnzahl, 0.0) - ISNULL(Warenausgang.fAnzahl, 0.0))
* ISNULL(tliefArtikel.fEKNetto, 0.0)
)
/
SUM(ISNULL(tWarenLagerEingang.fAnzahl, 0.0) - ISNULL(Warenausgang.fAnzahl, 0.0))
ELSE 0
END AS [Durchschnittlicher EK Einzel],
SUM(
ISNULL(tWarenLagerEingang.fAnzahl, 0.0)
- ISNULL(Warenausgang.fAnzahl, 0.0)
) AS Bestand,
tWarenLager.cName AS Lager,
MAX(tWarenLagerEingang.dGeliefertAm) AS [Letztes Lieferdatum]
FROM dbo.tWarenLagerPlatz
JOIN dbo.tWarenLager
ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
LEFT JOIN dbo.tWarenLagerEingang
ON tWarenLagerPlatz.kWarenLagerPlatz = tWarenLagerEingang.kWarenLagerPlatz
AND tWarenLagerEingang.dErstellt < DATEADD(dd, +1, @date)
LEFT JOIN dbo.tArtikel
ON tWarenLagerEingang.kArtikel = tArtikel.kArtikel
LEFT JOIN dbo.tSpracheUsed
ON dbo.tSpracheUsed.nStandard = 1
LEFT JOIN
(
SELECT DISTINCT kArtikel, cName, kSprache, kPlattform
FROM dbo.tArtikelBeschreibung
) AS tArtikelBeschreibung
ON tArtikel.kArtikel = tArtikelBeschreibung.kArtikel
AND dbo.tSpracheUsed.kSprache = tArtikelBeschreibung.kSprache
AND tArtikelBeschreibung.kPlattform = 1
LEFT JOIN
(
SELECT
SUM(ISNULL(tWarenLagerAusgang.fAnzahl, 0.0)) AS fAnzahl,
tWarenLagerAusgang.kWarenLagerEingang
FROM dbo.tWarenLagerAusgang
WHERE ISNULL(tWarenLagerAusgang.dErstellt, GETDATE()) < DATEADD(dd, +1, @date)
GROUP BY tWarenLagerAusgang.kWarenLagerEingang
) AS Warenausgang
ON tWarenLagerEingang.kWarenLagerEingang = Warenausgang.kWarenLagerEingang
WHERE
tWarenLager.kWarenLager =
@warehouse
AND tArtikel.cArtNr NOT LIKE '%brauchbar'
AND tArtikel.cArtNr NOT LIKE '%defekt'
AND tArtikel.cArtNr NOT LIKE '%verpackung'
GROUP BY
tArtikel.cArtNr,
tWarenLager.cName
HAVING
SUM(ISNULL(tWarenLagerEingang.fAnzahl, 0.0) - ISNULL(Warenausgang.fAnzahl, 0.0)) > 0
ORDER BY tArtikel.cArtNr;