1
다음 MS-SQL Server 쿼리를 MySQL로 변환하고 있으며이 부분에서 멈추었습니다. 누구든지 내가 여기서 뭘 잘못하고 있는지 말해 줄 수 있니?MS-SQL Server 쿼리에서 MySQL 및 DATEDIFF()로 변환
기존 MS-SQL 쿼리 (작동하지 않음) (작업)
select top 4
[Mon]=sum(case when datename(weekday, vrdate) = 'Monday' then namount else 0 end),
[Tue]=sum(case when datename(weekday, vrdate) = 'Tuesday' then namount else 0 end),
[Wed]=sum(case when datename(weekday, vrdate) = 'Wednesday' then namount else 0 end),
[Thu]=sum(case when datename(weekday, vrdate) = 'Thursday' then namount else 0 end),
[Fri]=sum(case when datename(weekday, vrdate) = 'Friday' then namount else 0 end),
[Sat]=sum(case when datename(weekday, vrdate) = 'Saturday' then namount else 0 end),
[Sun]=sum(case when datename(weekday, vrdate) = 'Sunday' then namount else 0 end)
from stockmain
where etype = 'sale' and DATEDIFF(MONTH, vrdate, getDate()) = 0
group by datepart(week, vrdate)
order by datepart(week, vrdate) ;
각각의 MySQL의 쿼리 아래
는 각각의 MySQL의 쿼리 내가 WHERE
절에 DATEDIFF
에 붙어 .
select
sum(case when date_format(vrdate, '%W') = 'Monday' then namount else 0 end) as 'Mon',
sum(case when date_format(vrdate, '%W') = 'Tuesday' then namount else 0 end) as 'Tue',
sum(case when date_format(vrdate, '%W') = 'Wednesday' then namount else 0 end) as 'Wed',
sum(case when date_format(vrdate, '%W') = 'Thursday' then namount else 0 end) as 'Thu',
sum(case when date_format(vrdate, '%W') = 'Friday' then namount else 0 end) as 'Fri',
sum(case when date_format(vrdate, '%W') = 'Saturday' then namount else 0 end) as 'Sat',
sum(case when date_format(vrdate, '%W') = 'Sunday' then namount else 0 end) as 'Sun'
from stockmain
where etype = 'sale' and DATEDIFF(MONTH, vrdate, CURDATE()) = 0
group by WEEK(VRDATE)
order by WEEK(VRDATE) desc
LIMIT 4
1. 동등한 것을 주셔서 감사합니다 :-) –
저는 그것이 실제로 동등한 것인지 숙고하고있었습니다. 저는 생각하지 않습니다.하지만 테스트 할 소프트웨어가 없습니다. 'timestampdiff'는 잘 동작 할 것입니다. –
둘 다 같은 결과를 산출했습니다. 나는 두 번째 것과 갈거야. –