Neu Problem mit SQL Abfrage

Marvin S.

Aktives Mitglied
30. Juni 2020
64
5
Hallo Leute,

Ich habe das Problem mit meiner aktuellen SQL abfrage.

Ich habe für eine Druckvorlage eine Tabelle erzeugt, welche mit Daten aus der Datenbank gefüllt wird.

Ich habe die 3 Felder
Artikelnummer, Name, Datum.

Geprüft wird ob ein Artikel bei einem Lieferanten bestellt wurde oder nicht, falls nicht sollte die Abfrage einen Alternativen text wieder geben.

Mein Problem ist nun Ich habe 5 Artikel aber nur 3 sind beim Lieferanten bestellt.
2 Artikel haben somit kein Datum.

0001 | A | 02.09.2020
0002 | B | 10.09.2020
0003 | C | 16.09.2020
0004 | D |
0005 | E |

So sieht die Tabelle am ende aus, leider weiß ich nicht wie ich die Leeren Felder umgehen kann.

Falls jemand mein SQL-Code dazu braucht kann ich Ihn gerne anhängen.

LG Marvin
 

Marvin S.

Aktives Mitglied
30. Juni 2020
64
5
@zwitsch habe es mal hier auf gelistet. Die Grundidee hatte ich aus einer anderen Vorlage übernommen und versucht es an meinen Wünschen anzupassen leider komm ich nicht mehr weiter.

Artikel-Nummer:
JTL_DirectTableQuery ("
SELECT lvAuftragsposition.cArtNr
FROM Verkauf.lvAuftragsposition
JOIN dbo.tbestellpos ON tbestellpos.kBestellPos = Verkauf.lvAuftragsposition.kBestellpos
WHERE kBestellung = (SELECT kBestellung FROM dbo.tLieferschein WHERE kLieferschein = "+str$(Report.InternalId,0,0)+")
AND (fAnzahl - ISNULL(fGeliefert,0) ) >0
AND nType IN (0,1)
order by fZulauf desc offset 0 rows","¶","¶")

Name:

JTL_DirectTableQuery ("
SELECT lvAuftragsposition.cString
FROM Verkauf.lvAuftragsposition
JOIN dbo.tbestellpos ON tbestellpos.kBestellPos = Verkauf.lvAuftragsposition.kBestellpos
WHERE kBestellung = (SELECT kBestellung FROM dbo.tLieferschein WHERE kLieferschein = "+str$(Report.InternalId,0,0)+")
AND (fAnzahl - ISNULL(fGeliefert,0) ) >0
AND nType IN (0,1)
order by fZulauf desc offset 0 rows","¶","¶")

Datum:


JTL_DirectTableQuery ("
SELECT CONVERT(varchar( 10 ),dLieferdatum,104)
FROM tLieferantenBestellungPos
WHERE cArtNr IN (
SELECT lvAuftragsposition.cArtNr
FROM Verkauf.lvAuftragsposition
JOIN dbo.tbestellpos ON tbestellpos.kBestellPos = Verkauf.lvAuftragsposition.kBestellpos
WHERE kBestellung = (
SELECT kBestellung
FROM dbo.tLieferschein
WHERE kLieferschein = "+str$(Report.InternalId,0,0)+")
AND (fAnzahl - ISNULL(fGeliefert,0) ) >0
AND nType IN (0,1)
order by fZulauf desc offset 0 rows)
AND fAnzahlOffen>0","¶","¶")
 

zwitsch

Sehr aktives Mitglied
14. November 2007
425
38
Prüf mal, ob das funktioniert:

SELECT CASE WHEN dLieferdatum IS NULL
THEN 'irgendein Text'
ELSE CONVERT(varchar( 10 ),dLieferdatum,104)
END AS Lieferdatum
FROM tLieferantenBestellungPos..........
 

Marvin S.

Aktives Mitglied
30. Juni 2020
64
5
Danke für die Antwort @zwitsch,
leider erzielt die Abfrage kein nennenswerten erfolg.
Auch mit deiner Abfrage komme ich nur auf die selbe anzahl an Treffer.

In dem Fall den ich grade Teste kommt es so raus:

AS01979-02
AS01979-03
AS01979-04
AS01980
AS00801


Die Unterabfrage liefert:
AS01980
AS00801
AS01979-02
AS01979-04
AS01979-03
AS01983-01
AS01983-02
AS01981-04
AS01981-01

Sind aktuell 5 Artikel die nicht von der Abfrage bearbeitet werden, bzw, keinen Wert zurück geben
 

Ähnliche Themen