-1

私は3つのテーブルを持っています。(たとえば、もともと数字をとっていた私はいくつかの短い名前をとっていました)

  1. テーブル 1 を 1 として
  2. table2 as 2
  3. table3 as 3

block_id は、3 つのテーブルすべての接続属性です。

ノート:

  • block_id は一意で、block_status は table1 に存在します
  • table2 に重複する block_id、thickness_id、no_of_slabs が存在します
  • table3 に重複する block_id、sub_block_id、p_status が存在します

status='cut' の場合、block_id、スラブの総数、それぞれの block_id の p_status を表示したい

  • block_id を介してテーブルからスラブの総数を取得できます
  • すべての sub_block_id のステータスが完了している場合は z_status=fullyCompleted、そうでない場合は partialCompleted です。

以下のクエリを試してみましたが、うまくいきません。

select 1.block_id,sum(2.noofslabs) as totalslabs,if(3.status='completed','fullyCompleted','partiallyCompleted') from table1 as 1 
left join table2 as 2 on 1.block_id=2.block_id 
left join table3 as 3 on 1.block_id=3.block_id where 1.status='Cut'

table3 を追加していない場合、totalslabs の結果は正しく、table3 に結合している場合、結果は間違っています。もう 1 つは、その z_status を部分的に完了または完全に完了として取得する方法です。

4

1 に答える 1