2017-07-07 38 views
1

我的表看起来像这样(我在一家能源公司工作)SQL服务器:SUM视的一个条件多行

dte    hub   Peak   Offpeak 
07-04-2017  SoCo   36.19   18.23 
07-04-2017  SwapBID  0.5    0.25 
07-05-2017  SoCo   32.12   21.72 
07-05-2017  SwapBID  0.25   0.25 
07-06-2017  SoCo   33.87   20.34 
07-06-2017  SwapBID  0.5    0.5 

我希望能够用一个选择查询从该表中提取数据,并使两个枢纽的高峰和低峰价格在同一天内加在一起。例如,在2017年4月7日我希望它显示山顶是36.69和Offpeak是18.48。我想在桌上每天都这样做。我如何编码?

+1

与样本数据,什么是预期的结果 - 作为格式化文本? – jarlh

+1

你应该发布你已经尝试过的 - 以及你所做的任何研究。 –

回答

1

按日期只是汇总表格,总结高峰,非高峰值:

SELECT 
    dte, 
    SUM(Peak) AS Peak, 
    SUM(Offpeak) AS Offpeak 
FROM yourTable 
GROUP BY dte 

如果给定的日期可能有不止一个hub类型,但我们想只考虑SoCoSwapBID枢纽,那么我们就可以考虑增加一个WHERE子句查询:

WHERE hub IN ('SoCo', 'SwapBID') 
0

你要找的聚合group by

尝试:

create table #t(dte date,hub varchar(100),Peak float,Offpeak float) 
insert into #t values 
('07-04-2017','SoCo',36.19,18.23), 
('07-04-2017', 'SwapBID',0.5,0.25), 
('07-05-2017','SoCo',32.12,21.72), 
('07-05-2017','SwapBID',0.25,0.25), 
('07-06-2017', 'SoCo,33.87,20.34), 
('07-06-2017', 'SwapBID',0.5,0.5) 

select dte, 
sum(Peak) as total_peak, 
sum(Offpeak) as total_offpeak 
from #t 
group by dte