我正在使用WHERE
子句中使用的4个输入参数(2 * ID,年份和月份)创建存储过程。
问题是我似乎无法在某个时期为特定月份编写正确的语法来获取价值(Koeficient)。
ALTER PROCEDURE [dbo].[obrPla_DohvatiPojedineRadniciKoeficientZaObracun]
(
@IDFirma INT,
@IDRadnik INT,
@Godina SMALLINT,
@Mjesec TINYINT
)
AS BEGIN
SELECT rk.Koeficient
FROM RadniciKoeficient rk
WHERE rk.IDFirma = @IDFirma
AND rk.IDRadnik = @IDRadnik
AND DATEPART(yyyy, rk.DatumOd) = @Godina
AND CASE WHEN rk.DatumDo IS NOT NULL
THEN DATEPART(mm, rk.DatumOd) <= @Mjesec AND @Mjesec <= DATEPART(mm, rk.DatumDo)
ELSE DATEPART(mm, rk.DatumOd) <= @Mjesec
END
END
答案 0 :(得分:0)
就个人而言,
我建议你删除参数@Godina和@Mesec,然后使用像@Time这样的单个参数......
然后,而不是检查年份和月份...因为您发现这两个日期之间的价值
android:digits="0123456789,-"
请继续
DATEPART(yyyy, rk.DatumOd) = @Godina and
case when rk.DatumDo is not null then
(DATEPART(mm, rk.DatumOd) <= @Mjesec and @Mjesec <= DATEPART(mm, rk.DatumDo))
else (DATEPART(mm, rk.DatumOd) <= @Mjesec)
end