나는 4 분기로 올해를 세우려고 SQL 보고서 작업 중입니다. 그리고 올해에 따라 다른 스크립트를 사용해야하는 것을 막으려면 모든 것을 하나에서 꺼내려고합니다. 그래서 내가 시도한 것은 where 절에 CASE 문을 가지고 있습니다. CASE 문은 연도의 분기가 x 일이 y와 z 사이 일 필요가 있다고 말합니다. 이로 인해 구문 오류가 많아졌고 어디에서 찾을 수없는 지 알 수 있습니다. 너희들도 한 번 봐봐도 가능할 지 알려주 겠니?SQL 날짜를 때 xthen 때까지 어떻게
`AND s.actual_arrival BETWEEN
CASE
WHEN MONTH(DATEADD(dd, -1, GETDATE())) < 4 THEN YEAR(DATEADD(dd, -1, GETDATE())) + '-01-01' AND YEAR(DATEADD(dd, -1, GETDATE())) + '03-31 23:59:59'
WHEN MONTH(DATEADD(dd, -1, GETDATE())) > 3 AND MONTH(DATEADD(dd, -1, GETDATE())) < 7 THEN YEAR(DATEADD(dd, -1, GETDATE())) + '-04-01' AND YEAR(DATEADD(dd, -1, GETDATE())) + '06-30 23:59:59'
WHEN MONTH(DATEADD(dd, -1, GETDATE())) > 6 AND MONTH(DATEADD(dd, -1, GETDATE())) < 10 THEN YEAR(DATEADD(dd, -1, GETDATE())) + '-07-01' AND YEAR(DATEADD(dd, -1, GETDATE())) + '09-31 23:59:59'
WHEN MONTH(DATEADD(dd, -1, GETDATE())) > 9 THEN YEAR(DATEADD(dd, -1, GETDATE())) + '-10-01' AND YEAR(DATEADD(dd, -1, GETDATE())) + '12-31 23:59:59'
END`
어떤 DBMS를 사용하고 있습니까? –
분명히 SQL Server 코드이기 때문에 SQL Server 질문에 태그를 붙였습니다. –
미시시피 SQL 미안. 그리고 고든에게 감사드립니다. 그 태그를 놓친 것 같습니다. – Ardel