Ich habe zwei Tabellen mit den Namen tbl_brands
und tbl_counter_stock
. In tbl_brands
gibt es ein Schlüssel-Wert-Paar von Marken-ID und Markenname. In tbl_counter_stock
Spalten sind wie brnd_id
, 2000ml
, 1000ml
, stock
, stock_date
. Jede Zeile stellt die Marke von Likör mit verschiedenen Lagern wie O-Opening, R-Empfangene, S-Sales, C-Closing Ich mag den Rekord holen für Endbestände aus dieser Tabelle der einzelnen Marken und wenn die Eintrag für C (Closing Stock) ist in dieser Tabelle nicht vorhanden, dann möchte ich O (Opening Stock) dieser Marke abholen. Ich erhalte beide Werte für den Anfangs- und Endbestand, wenn der Schlussbestand für diese Marke bereits vorhanden ist. Und das ist kein gewünschtes Ergebnis für mich. Ich möchte O (Anfangsbestand) nur erhalten, wenn C (Schlussbestand) nicht vorhanden ist. Vielen Dank im Voraus.Wie erhält man den Wert einer anderen Zeile, wenn die Zeile in der Tabelle nicht existiert?
SELECT
A.brnd_id,A.brnd_name,'2000ml' capacity,COALESCE(B.`2000ml`,0) bottles,
B.stock,B.stock_date
FROM tbl_brands A
left OUTER JOIN
tbl_counter_stock AS B
on A.BRND_ID=B.BRND_ID
AND B.STOCK IN('O','C')
AND B.STOCK_DATE='2017-01-18'
Das ist genial Lösung und es hat für mich funktioniert. Ich habe viel gekämpft und du hast mich gerettet :) Vielen Dank @iLikeMySql –
Ich bin froh, dass ich dir helfen konnte. Ich habe gerade gemerkt, dass ich STOCK_DATE in der zweiten Where-Klausel vergessen und die Vollständigkeit korrigiert habe. – iLikeMySql
Vielen Dank. Ich habe es selbst gemacht :) –