簡體   English   中英

獲取最后一行SQL Server 2008的營業額總和

[英]Get the sum of turnover in the last row SQL Server 2008

解決方案:我必須將WHERE子句添加到兩個SELECT查詢中。


我正在使用SQL Server 2008數據庫。

我正在嘗試編寫一個SQL查詢以返回這樣的結果集:

    date     | turnover_centrale    | turnover_public       
+------------+----------------------+--------------------
| 2017-02-14 | 233.34               | 383.83                    
| 2017-03-14 | 142.81               | 166.8                  
| 2017-04-14 | 173.25               | 250.51                
| 2017-05-14 | 186.96               | 245.08                
| 2017-06-14 | 61.26                | 97.67                 
| 2017-07-14 | 262.98               | 356.16                
| 2017-08-14 | 89.88                | 162.38               
| 2017-09-14 | 250.32               | 381.47                
| 2017-10-14 | 386.06               | 581.96                
| Total      | Result of the column | Result of the column

我的SQL查詢是:

SELECT 
    CLC_DATE, CLC_PRIX_CENTRALE, CLC_PRIX_PUBLIC 
FROM 
    ##.dbo.CLIENTS_CONSO
WHERE 
    CF_USER = :ref

UNION ALL

SELECT 
    NULL, SUM(CLC_PRIX_CENTRALE), SUM(CLC_PRIX_PUBLIC) 
FROM 
    ##.dbo.CLIENTS_CONSO

不幸的是,最后一行的結果為false :(

那么您有更好的解決方案嗎?

非常感謝!

考慮到每個日期只有一個條目,也許:

WITH VTE AS (
    SELECT CONVERT(date,[date]) AS [date], turnover_centrale, turnover_public
    FROM (VALUES 
                ('20170214',233.34,383.83),                    
                ('20170314',142.81,166.8 ),                 
                ('20170414',173.25,250.51),                
                ('20170514',186.96,245.08),                
                ('20170614',61.26 ,97.67 ),                
                ('20170714',262.98,356.16),                
                ('20170814',89.88 ,162.38),               
                ('20170914',250.32,381.47),                
                ('20171014',386.06,581.96)) V([date],turnover_centrale, turnover_public))
SELECT ISNULL(CONVERT(varchar(10),[date],120),'Total') AS [date],
       SUM(turnover_centrale) AS turnover_centrale,
       SUM(turnover_public) AS turnover_public
FROM VTE
GROUP BY [date] WITH ROLLUP;       

非常感謝 ! 我的表是這樣構建的:

    https://i.imgur.com/csXl8vl.png
    <br>
    CLC_DATE = the date of consumption, it's corresponding to each month in a year.
    <br>
    CLC_PRIX_PUBLIC = the turnover public
    <br>
    CLC_PRIX_CENTRALE = the turnover centrale

WHERE子句很重要,因為它來自客戶端的網關及其消耗

使用您的解決方案,它不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM