Здесь вы работаете с целыми числами. Попробуйте использовать десятичные числа для всех чисел в вашем расчете.
decimal share = (18m/58m)*100m;
SELECT CASE COUNT(*) WHEN 0 THEN 'Form1' ELSE 'Form2' END AS ShowForm
FROM
TABLE
WHERE employee_Id = '$CurrentUserId
AND CreatedOn > DATEADD(year,-1,GETDATE())
При проверке, существует ли запись, используйте EXISTS
/ NOT EXISTS
. COUNT()
будет фактически считать все строки, в то время как EXISTS
будет закорачивать в первом ряду, таким образом, это будет быстрее.
IF EXISTS (SELECT 'record this year' FROM [TABLE] T WHERE T.employee_Id = '$CurrentUserId Если вам нужно это в 1 SELECT
утверждении, вы можете использовать решение Дирендры.
AND T.CreatedOn > DATEADD(YEAR,-1,GETDATE()))
BEGIN
-- Do stuff if record this last year
END
ELSE
BEGIN
-- Do stuff if no record this last year
END
Если вам нужно это в 1 SELECT
утверждении, вы можете использовать решение Дирендры.