tbl_brands
とtbl_counter_stock
の2つのテーブルがあります。 tbl_brands
には、ブランドIDとブランド名のキーと値のペアがあります。 の列は、brnd_id
,2000ml
,1000ml
,stock
,stock_date
のような列である。 各行 O-オープニング、 R-受信 S-販売、 C-閉会 が、私はこの表から各ブランドの証券を閉じるためとあれば、レコードを取得したいのような異なる株式とリキュールのブランドを表しこの表にC(Closing Stock)のエントリがない場合、そのブランドのO(Opening Stock)を取得したいと考えています。閉鎖する株式が既にそのブランドに存在する場合は、私はオープニングとクローズの両方の値を取得しています。そして、これは私にとって望ましい結果ではありません。私はC(クローズ・ストック)が存在しない場合にのみ、O(オープニング・ストック)を取得したい。 ありがとうございます。行がテーブルに存在しない場合、別の行の値を取得する方法はありますか?
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ありがとうございます –
私はあなたを助けることができてうれしいです。私はちょうど2番目のwhere句でSTOCK_DATEを忘れてしまったことに気付き、完全性のために修正しました。 – iLikeMySql
ありがとうございました。私は自分でそれをやった:) –