根据列汇总数据

时间:2020-07-07 20:34:03

标签: sql sql-server

表1中有几列具有不同的值。

Product,    
Type,   
Sales Amount,   
Value,  
Month,  
Year

我想要的是将这些信息合并并压缩到不同的列级别,以便根据产品和年份和月份中的类型而不是salevalue的总和来代替每个不同的行都显示为单独的值。

例如,如果我的所有列都相同,但是salevalue具有不同的值,则希望将其与对应的行加在一起。 \

此外,我想知道我的销售额与产品实际价值之间的损失率

Select Product,
Type,
Sale,
Value,
Month,
Year
Cast(value / sale as Dec) AS 'Loss Ratio' 

From Table 1

请帮忙吗?

1 个答案:

答案 0 :(得分:1)

似乎您只需要GROUP BYSUM

SELECT Product,
Type,
SUM(Sale) AS Sale,
SUM(Value) AS Value,
Month,
Year,
SUM(Sale)/SUM(Value) AS 'Loss Ratio' 
FROM Table1
GROUP BY Month, Year, Product, Type

SqlFiddle