0
我的要求是計算一個月內的付款日期。它已完成付款日期= NoOfDaysInMonth-LEAVES。如何在sql查詢中執行計算
爲了得到無天我正在使用
declare @DATE datetime
declare @NoOfDaysInMonth int
set @DATE='2014-3-01'
select @NoOfDaysInMonth= DAY(DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,-1,@DATE),0)))
print @NoOfDaysInMonth
這將返回31天。
以下是我以前的查詢不起作用。
******* datediff(day, MONTH(getdate()), dateadd(month, 1, month(getdate())))-(SELECT TOTALUNPAIDLEAVES FROM FN_GETTOTALLEAVESFORANEMPLOYEE(VW_EMPLOYEE_DETAILS.EMPLOYEEID,'''[email protected]+''','''[email protected]+''')) as [Paid Days] FROM VW_EMPLOYEE_DETAILS'
在地方的
datediff(day, MONTH(getdate()), dateadd(month, 1, month(getdate())))
我需要傳遞變量@NoOfDaysInMonth。
@NoOfDaysInMonth-(SELECT TOTALUNPAIDLEAVES FROM FN_GETTOTALLEAVESFORANEMPLOYEE(VW_EMPLOYEE_DETAILS.EMPLOYEEID,'''[email protected]+''','''[email protected]+''')) as [Paid Days] FROM VW_EMPLOYEE_DETAILS
修改我的代碼之後是
SET @[email protected]+' (SELECT TOTALLEAVESUSED FROM FN_GETTOTALLEAVESFORANEMPLOYEE(VW_EMPLOYEE_DETAILS.EMPLOYEEID,'''[email protected]+''','''[email protected]+''')) as [Total Leaves Used],(SELECT TOTALUNPAIDLEAVES FROM FN_GETTOTALLEAVESFORANEMPLOYEE(VW_EMPLOYEE_DETAILS.EMPLOYEEID,'''[email protected]+''','''[email protected]+''')) as [Total UnPaid Leaves], (select @DaysInMonth -(SELECT TOTALUNPAIDLEAVES FROM FN_GETTOTALLEAVESFORANEMPLOYEE(VW_EMPLOYEE_DETAILS.EMPLOYEEID,'''[email protected]+''','''[email protected]+'''))) as [Paid Days] FROM VW_EMPLOYEE_DETAILS'
現在我不明白你想用這段新代碼做什麼:SET @ COMMANDS = @ COMMANDS +'...你想在一個變量中得到結果嗎?它沒有理由變得太複雜了。 –
離開所有其他代碼...我改變了代碼,你在下面告訴....(選擇@DaysInMonth - (選擇TOTALUNPAIDLEAVES從FN_GETTOTALLEAVESFORANEMPLOYEE(VW_EMPLOYEE_DETAILS.EMPLOYEEID,'''+ @ YEAR +''','''+ @ MONTH +''')))作爲[付費天數] FROM VW_EMPLOYEE_DETAILS但過程不顯示和結果(記錄)...它剛剛顯示的「命令執行成功」。 –
左括號的數目是否等於數字或右括號? –