Sql 执行SUM,并在
我正在使用SQLServer2008 我得到这个错误: 在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中 我想: 从表b中选择所有列 当有相同的numberrid时,我希望执行SUM并返回一行结果 另外,如果只有一个数字,我想返回结果 我想再创建一个列案例,使用列百分比中的以下输出“Percentage is…”值 迄今为止的代码:Sql 执行SUM,并在,sql,Sql,我正在使用SQLServer2008 我得到这个错误: 在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中 我想: 从表b中选择所有列 当有相同的numberrid时,我希望执行SUM并返回一行结果 另外,如果只有一个数字,我想返回结果 我想再创建一个列案例,使用列百分比中的以下输出“Percentage is…”值 迄今为止的代码: select distinct b.*, case when b.NumberID = b.NumberID then
select distinct
b.*,
case
when b.NumberID = b.NumberID then SUM(d.Percentage)
end as Percentage,
NULL as LName,
NULL as FName,
'Percentage is' + convert(VARCHAR(20),
CASE WHEN b. NumberID = b.NumberID
THEN SUM(d.Percentage) END) as Case
from
Accounting b
join (
select b.*
from Accounting b
join (
select number
, MAX(id) id
from Accounting
where Date < '2012-12-01'
group by number
) a
on b.number = a.number
and b.Id = a.id
) b2
on b.number = b2.number
where b.Date > '2012-12-01'
group by b.NumberID
在“连接”下的“选择”中也使用distinct
//etc.
join
(
select DISTINCT b.* from
Accounting b
//etc.
您的案例语法不正确。检查一下。 应该是这样的:
CASE case_value
WHEN when_value
你的情况是jeje
select distinct b.*,
case b.NumberID when b.NumberID then ...
这的确很奇怪。b、 NumberID始终是b.NumberID:o您需要GROUPBY子句中包含的select语句中的所有列。比如说,我有一桌冰激凌和点冰激凌的人。我有数据显示
SELECT b.NumberID, SUM(b.Percentage) AS Percentage,
(
SELECT MAX(s.id)
FROM Accounting s
WHERE s.Date < '2012-12-01' AND s.number = b.number
) AS MaxID
FROM Accounting b
WHERE b.Date > '2012-12-01'
GROUP BY b.NumberID
乔点了巧克力
凯蒂点了草莓
玛丽点了巧克力
如果我告诉sql按冰淇淋口味分组,我是在告诉它,我只希望为该口味返回一行。通过在我的选择中包含客户的名字,我询问sql谁订购了每种口味。我怎样才能在一排显示谁点了巧克力?为了向sql查询我想要的信息,我需要为每位客户和每种口味的冰淇淋排一行,可能是Mary昨天点的草莓。所以,我需要根据顾客和冰淇淋口味进行分组
Select b.id, b.number, b.firmname, b.date, sum(...)
From
Group by b.id, b.number, b.firmname, b.date
Agregate函数不需要位于GROUPBY子句中,因为您正在向sql询问有关数据的特定问题。也许我想知道那个名字按字母顺序排在第一位的人。然后,我可以根据冰淇淋的口味来选择maxcustomer和group
Select b.id, b.number, b.firmname, b.date, sum(...)
From
Group by b.id, b.number, b.firmname, b.date
注:
只要命名所有列,就仍然可以使用b.*语法
在您的小组中
select中不再需要distinct关键字,因为
GROUPBY做的基本相同
您使用的聚合函数没有GROUPBY子句?我会非常小心地在单个语句中对不同的表重复使用相同的表别名b。使用单独的别名——同样,我建议使用更有意义的别名——比如会计表中的a或Acc……我用b.NumberID为group进行了更改。还是不行d.百分比从哪里来?我没有看到别名为d的表。这应该是b.百分比吗?你需要将b.*中的所有字段都包含在组中或集合中…@Tom Jerry,我的回答会不会无误运行?它会让你接近你想要的吗?