![](/img/trans.png)
[英]How to get multiple values of last entered row in 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.