の作業に基づいて値を取得するために、私はどのようにシフト
08 3メインシフトを有する:00〜16:00はS1
16:00〜24:00〜08:00 00はS2
が 00 S3
私は上記の3シフトに基づいてすべてのデータを取得する必要があります、今私は3シフトに基づいてすべてのデータを取得するストアドプロシージャを作成しています。以下は
ALTER PROCEDURE sp_shift
(
@V2_WORK_DATE DATETIME,
@V3_SHIFT_NO VARCHAR(2)
)
AS
DECLARE @shift VARCHAR(5);
select t3.scn,t3.vsl_name, t1.qty, t1.opr_type, t1.hatch_num,t1.opr_st_dt_tm,t1.opr_ed_dt_tm,t1.wght,t1.vol,t2.description,t3.disc_load,
case when @V3_SHIFT_NO = 'S1' THEN DATEPART(HH,@V2_WORK_DATE)> = 8 AND DATEPART(HH, @V2_WORK_DATE) <16
when @V3_SHIFT_NO = 'S2' THEN DATEPART(HH,@V2_WORK_DATE)> = 16 AND DATEPART(HH, @V2_WORK_DATE) <24
when @V3_SHIFT_NO = 'S1' THEN DATEPART(HH,@V2_WORK_DATE)> = 8 AND DATEPART(HH, @V2_WORK_DATE) <16 end as @shift
from ccostsitem t1
inner join ccoscargotype t2 on t2.code = t1.cg_type_id
inner join ccostallysheet t3 on t3.id = t1.master_id
where @shift = @V3_SHIFT_NO
私はこのストアドプロシージャに問題がcase when
あるのparam
EXEC sp_shift '2016-12-30 08:00:00.000','S1'
でSPをexecしどのように設定したい「incorrect syntax near end
」
どのcase文と変数の両方SQLで動作します。特定の日付列の時間が特定の範囲内にあるテーブルからデータを取得しようとしていると思います。日付列が何であるかを明確にして、いくつかのサンプルデータを与えることができますか? – ZLK