|
日期 水吨 水分 入洗量 2003-2-1 20188 6.60 炼焦精煤 2003-2-1 45000 8.59 洗中块 2003-2-1 16090 3.53 洗末煤 2003-2-1 54386 12.18 上表数据每日一次! 现在想得到: 本月累计 水吨 折合后数量 水分 入洗量 每日的累计值 算法 ((每日的水吨*水分)之和)/(水吨之和) 炼焦精煤 每日的累计值 洗中块 每日的累计值 洗末煤 每日的累计值 折合后数量的算法!当表A中水分<=9时不折合,即折合数量就是水吨数,当>9时 折合后数量 = (100-水分)*水吨/(100-9) 感谢帮助1!! 不知道说清楚了没有!! |
|
|
|
select
name, sum(水吨), sum(Case When 水分>9 Then (100-水分)*水吨/(100-9) Else 水吨 End) as 折合后数量, (sum(水吨*水分)/sum(水吨) as 水分 from 表A group by name,日期 |
|
|
不折合的情况结果如何?我现在是不折合为本身水吨
|
|
|
不折合就是本身水吨!!
不过你这样好像有点问题!! 日期 产品名称 水吨 水分 ReportDate CoalName WaterTon WaterPercent 2003-2-1 1 11 3.5 2003-2-2 2 12 2 2003-2-2 1 45 9.5 2003-2-1 2 14 5 测试结果 sum(水吨) 折合后数量 水分 产品名称 SUMWaterTon ZheHe ShuiFen CoalName 11 11 3.5 1 45 44.752 9.5 1 14 14 5 2 12 12 2 2 想得到: sum(水吨) 折合后数量 水分 产品名称 SUMWaterTon ZheHe ShuiFen CoalName 56 55.752 8.32 1 26 36 3.62 2 |
|
|
sorry! 最后写错了!
sum(水吨) 折合后数量 水分 产品名称 SUMWaterTon ZheHe ShuiFen CoalName 56 55.752 8.32 1 26 26 3.62 2 |
|
|
SELECT SUM(WaterTon) AS SUMWaterTon,
SUM(CASE WHEN WaterPercent > 9 THEN (100 - WaterPercent) * WaterTon / (100 - 9) ELSE WaterTon END) AS ZheHe, SUM(WaterTon * WaterPercent) / SUM(WaterTon) AS ShuiFen, CoalName FROM dbo.JS_NumQualityDaily GROUP BY ReportDate, CoalName |
|
|
SELECT SUM(WaterTon) AS SUMWaterTon,
SUM(CASE WHEN WaterPercent > 9 THEN (100 - WaterPercent) * WaterTon / (100 - 9) ELSE WaterTon END) AS ZheHe, SUM(WaterTon * WaterPercent) / SUM(WaterTon) AS ShuiFen, CoalName FROM dbo.JS_NumQualityDaily GROUP BY cast(YEAR(ReportDate) as varchar)+cast(MONTH(ReportDate) as varchar), CoalName |
|
|
那就把group by 后面的 “日期”去掉
|
|