Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql ';预期EOS';在条件语句下_Sql_Sql Server_Conditional Statements - Fatal编程技术网

Sql ';预期EOS';在条件语句下

Sql ';预期EOS';在条件语句下,sql,sql-server,conditional-statements,Sql,Sql Server,Conditional Statements,MS SQL Server在从CASE开始的条件语句下告诉我“预期EOS”。 有人能找出这个代码的错误吗 如前面的注释所示,大小写语法不正确。您还可以将乘法移到大小写表达式之外。要获得可运行的查询,还缺少一个grouping子句来处理跨goal列的聚合(AVG()) SELECT goal, AVG( case currency when 'GBP' then 1.3 when 'CAD' then 0.76

MS SQL Server在从CASE开始的条件语句下告诉我“预期EOS”。 有人能找出这个代码的错误吗



如前面的注释所示,
大小写
语法不正确。您还可以将乘法移到
大小写
表达式之外。要获得可运行的查询,还缺少一个
grouping
子句来处理跨
goal
列的聚合(
AVG()

SELECT goal,
       AVG(
       case currency
          when 'GBP' then 1.3
          when 'CAD' then 0.76
          when 'AUD' then 0.71
          ...
          else 1
        end * goal) AS goal_currency_uniformed,
       AVG(pledged) AS avg_num_pledged, 
       AVG(backers) AS avg_num_backers
FROM kickstarter
GROUP BY goal;
请考虑将汇率移动到单独的表中。这将允许您将此查询缩小一点,并具有额外的优势,即您可以在不修改代码的情况下更新汇率

SELECT ks.goal,
       AVG(er.rate * ks.goal) as goal_currency_uniformed,
       AVG(pledged) AS avg_num_pledged, 
       AVG(backers) AS avg_num_backers
FROM kickstarter ks
JOIN exchangerates er ON er.currency = ks.currency
GROUP BY goal;

查看所有操作。

语法是当[condition]然后[expression]{ELSE expression}结束时的
大小写
您的汇率应该在单独的表中,而不是硬编码到查询中。欢迎您!如果这就完成了你的问题,那么你可以正式地“接受”答案,从一大堆“未回答的问题”中删除你的问题。
SELECT ks.goal,
       AVG(er.rate * ks.goal) as goal_currency_uniformed,
       AVG(pledged) AS avg_num_pledged, 
       AVG(backers) AS avg_num_backers
FROM kickstarter ks
JOIN exchangerates er ON er.currency = ks.currency
GROUP BY goal;