将我的MySQL SQL语句更改为MS SQL
有人能帮我把这个MySQL语句转换成MS SQL,在SQL 2008 R2上运行吗将我的MySQL SQL语句更改为MS SQL,mysql,sql-server,Mysql,Sql Server,有人能帮我把这个MySQL语句转换成MS SQL,在SQL 2008 R2上运行吗 SELECT UNIX_TIMESTAMP(summary.date) as epoch_date, round(SUM(CASE WHEN meters.group != '' THEN kWh ELSE 0 END),2) as total, round(SUM(CASE WHEN meters.group = 'eastern' THEN kWh ELSE 0 END),2) as eastern, rou
SELECT UNIX_TIMESTAMP(summary.date) as epoch_date,
round(SUM(CASE WHEN meters.group != '' THEN kWh ELSE 0 END),2) as total,
round(SUM(CASE WHEN meters.group = 'eastern' THEN kWh ELSE 0 END),2) as eastern,
round(SUM(CASE WHEN meters.group = 'western' THEN kWh ELSE 0 END),2) as western,
round(SUM(CASE WHEN meters.group = 'central' THEN kWh ELSE 0 END),2) as central
FROM summary, meters
WHERE summary.webmeterID = meters.webmeterID
AND date BETWEEN
DATE_SUB(CURRENT_DATE, INTERVAL 3 YEAR)
AND DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)
GROUP by date
什么不起作用?谢谢,我收到错误:“关键字“group”附近的语法不正确。”[date]和[group]是SQL Server 2008中的保留字,如果用作列名(不推荐!),则应使用方括号([])。
SELECT
CASE
WHEN DATEDIFF(second,'1970-01-01 00:00:00',summary.[date])>0
THEN DATEDIFF(second,'1970-01-01 00:00:00',summary.[date])
ELSE
0
END as epoch_date,
round(SUM(CASE WHEN meters.[group] != '' THEN kWh ELSE 0 END),2) as total,
round(SUM(CASE WHEN meters.[group] = 'eastern' THEN kWh ELSE 0 END),2) as eastern,
round(SUM(CASE WHEN meters.[group] = 'western' THEN kWh ELSE 0 END),2) as western,
round(SUM(CASE WHEN meters.[group] = 'central' THEN kWh ELSE 0 END),2) as central
FROM summary, meters
WHERE summary.webmeterID = meters.webmeterID
AND [date] BETWEEN
DATEADD(year,-3,GETDATE())
AND DATEADD(day,-1,GETDATE())
GROUP by [date]