2014-03-07 5 views
0

내 요구 사항은 한 달에 PAID DAYS를 계산하는 것입니다. PAID DAYS = 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 

사용하고이 삼십일일 반환합니다.

다음은 작동하지 않는 이전 쿼리입니다.

datediff(day, MONTH(getdate()), dateadd(month, 1, month(getdate()))) 

대신에

******* 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' 

나는 변수 @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' 
+0

이제이 새로운 코드 조각으로 무엇을하려하는지 이해하지 못합니다. SET @ COMMANDS = @ COMMANDS + '... 결과를 하나의 변수로 가져 오시겠습니까? 그것은 아무런 이유없이 너무 복잡해지고 있습니다. –

+0

다른 코드는 모두 남겨 두었습니다. 아래에서 말한대로 코드를 변경했습니다 .... (@DaysInMonth - (VW_EMPLOYEE_DETAILS.EMPLOYEEID, ''+ @ YEAR + '' '' '' '+'FN_GETTOPLELEAVESFORANEMPLOYEE @ MONTH + '' ')))) VW_EMPLOYEE_DETAILS에서 [Paid Days]로 표시되지만 프로 시저가 표시되지 않고 결과 (레코드) ... "명령이 성공적으로 실행되었습니다." –

+0

왼쪽 괄호의 수는 숫자 또는 오른쪽 괄호와 동일합니까? –

답변

1

귀하의 계산은 괜찮이다. 마지막 문은 다음과 같아야합니다.

배치 (이 문을 이전 코드와 함께 명령문 그룹)로 실행하는 것을 명심하십시오. 그렇지 않으면 @NoOfDaysInMonth 변수가 손실됩니다.

+0

명령이 성공적으로 실행되었지만 출력이 표시되지 않습니다. –

관련 문제