일련의 조건에 대해 PayrollOID가 필요한 두 테이블 사이에 교차 조인이 있습니다. CASE 문, WHERE 절의 CASE 및 IIF 문에서이 작업을 시도했지만 일반 코드에서는 공백을 제거하기 위해 다른 패스를 수행해야합니다.SQL> = 및 <= IIF에서 또는 오류가 발생하는 곳
나는 승인 날짜를 기준으로 급여로가는 직업 승인을 받았습니다. 승인이 입력 된 날짜로 변경하고 있습니다. Apr_Entered이> = JobPayStart 및 Apr_Entered < = TimesheetsDue 및 JobEndDate> = JobPayStart 및 JobEndDate < = JobPayEnd 경우
- OID 말해 준다. 다른 것을 찾지 마십시오.
기타 - 저는 Apr_Entered가 JobPayStart 이상이고 Apr_Entered가 < = JobPayEnd 인 곳에서 급여를 받고 싶습니다.
오류가 발생했습니다. 함수 인수 목록에 오류가 있습니다. '>'을 (를) 인식 할 수 없습니다. 쿼리 텍스트를 구문 분석 할 수 없습니다.
하지만 실행됩니다. 그러나 두 괄호가 중첩 작업을 위해 표시되는 곳에서 중복을 얻고 있습니다.
내 북 엔드를 강화하는 데 도움이 필요합니다. 그래서 처음 발견되면 도움이 필요합니다. 나는 또한 왜 datetime 필드를 Date로 변환하여 비교할 때 오류가 발생하는지 알 필요가있다.
IIF(CONVERT(varchar(10), ProtoPayroll.AprEntered,110) >= CONVERT(varchar(10), PayDates.PayStartDate,110)
AND CONVERT(varchar(10), ProtoPayroll.AprEntered,110) <= CONVERT(varchar(10), PayDates.TimesheetsDue,110)
AND CONVERT(varchar(10), ProtoPayroll.JobEndDate,110) >= CONVERT(varchar(10), PayDates.PayStartDate,110)
AND CONVERT(varchar(10), ProtoPayroll.JobEndDate,110) <= CONVERT(varchar(10), PayDates.PayEndDate,110),
--First IIF's result
CONVERT(nvarchar(40), dbo.Paydates.OID),
--Now another IIF
IIF (CONVERT(varchar(10), ProtoPayroll.AprEntered,110) >= CONVERT(varchar(10), PayDates.PayStartDate,110)
AND CONVERT(varchar(10), ProtoPayroll.AprEntered,110) <= CONVERT(varchar(10), PayDates.PayEndDate,110),
--Second IIF's results
CONVERT(nvarchar(40), dbo.Paydates.OID), SPACE(40))) AS PayrollOID
왜'varchar'에 날짜를 (내가 가정)으로 변환된다 살펴 있나요? – Larnu
문제를 재현하는 스크립트를 게시 할 수 없다면 누구도 확실하게이 질문에 대답 할 수 있다고 생각하지 않습니다. –