У меня есть две таблицы, называемые tbl_brands
и tbl_counter_stock
. В tbl_brands
есть ключевая пара идентификаторов торговой марки и фирменного наименования. В колонках tbl_counter_stock
показаны как brnd_id
, 2000ml
, 1000ml
, stock
, stock_date
. Каждая строка представляет бренд ликера с различной акции как O-Открытие, R-Received, S-Sales, C-Закрыв Я хочу, чтобы принести записи для закрытия Шток каждого бренда из этой таблицы, и если запись для C (Closing Stock) отсутствует в этой таблице, тогда я хочу получить O (начальный запас) этого бренда. Я получаю обе значения открытия и закрытия акции, если для этого бренда уже присутствует Закрывающая акция. И для меня это не желаемый результат. Я хочу получить O (открытие акций) только в том случае, если C (Закрытие) отсутствует. Спасибо заранее.Как получить значение другой строки, если строка не существует в таблице?
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'
Это потрясающее решение, и это сработало для меня. Я много боролся, и вы спасли меня :) Большое спасибо @iLikeMySql –
Я рад, что могу вам помочь. Я только что заметил, что забыл STOCK_DATE во втором месте where и исправил его для полноты. – iLikeMySql
Большое спасибо. Я сделал это сам :) –