アルコール カテゴリとジョブ番号によって yes/no カウントを表示するストアド プロシージャを作成しています。現在のカテゴリ (ワイン、ビール、ウィスキー) のプログラミングをユニオンを介して開始しましたが、さらに多くのカテゴリが存在する可能性があることを考えて、このコードのサイズが非常に大きくなるのを視覚化しました。ループ内でユニオンをすべて実行してから、アルコール カテゴリの引数を渡すことは可能ですか? インターネットをトロールし、この件についてはほとんど見ていないので、助けやガイダンスがあれば大歓迎です.
私のコードの始まり...
delimiter $$
create procedure alc_cat_yn (in jid int)
begin
select
cast(concat(jobid,' - Wine')
as char(50)) as `Job Number - Consumed Yesterday`
,sum(case when wine_id=1 then 1 else 0 end) as y
,sum(case when wine_id=2 then 1 else 0 end) as n
from demos
where jobid=jid
group by jobid
union all
select
cast(concat(jobid,' - Beer')
as char(50)) as `Job Number - Consumed Yesterday`
,sum(case when beer_id=1 then 1 else 0 end) as y
,sum(case when beer_id=2 then 1 else 0 end) as n
from demos
where jobid=jid
group by jobid
union all
select
cast(concat(jobid,' - Whisky')
as char(50)) as `Job Number - Consumed Yesterday`
,sum(case when whisky_id=1 then 1 else 0 end) as y
,sum(case when whisky_id=2 then 1 else 0 end) as n
from demos
where jobid=jid
group by jobid;
end