With T
創(chuàng)新互聯(lián)建站一直通過網(wǎng)站建設(shè)和網(wǎng)站營銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實效"的一站式服務(wù),以網(wǎng)站制作、網(wǎng)站建設(shè)、移動互聯(lián)產(chǎn)品、成都營銷網(wǎng)站建設(shè)服務(wù)為核心業(yè)務(wù)。10年網(wǎng)站制作的經(jīng)驗,使用新網(wǎng)站建設(shè)技術(shù),全新開發(fā)出的標(biāo)準(zhǔn)網(wǎng)站,不但價格便宜而且實用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡單易用,維護(hù)方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設(shè)的選擇。
As
(
Select ID,結(jié)束月,相差月 From TT
Union All
Select T.ID,Dateadd(M,-1,T.結(jié)束月),T.相差月-1 From TT Inner Join T On
TT.id=T.id Where T.相差月1
)
Select ID,結(jié)束月 From T
Order By id,結(jié)束月
--TT是你的表名
--SQL2005或以上版本
怎么改題目了?搞的我還把開始的要求給算出來了,如下:
select
a.月份,
a.本月收入總額,
case when b.本月收入總額=0 or b.本月收入總額 IS null then null else
(a.本月收入總額-b.本月收入總額)/b.本月收入總額*100 end 收入增長百分比,
a.本月支出總額,
case when b.本月支出總額=0 or b.本月支出總額 IS null then null else
(a.本月支出總額-b.本月支出總額)/b.本月支出總額*100 end 支出增長百分比,
a.本月余額,
case when b.本月余額=0 or b.本月余額 IS null then null else
(a.本月余額-b.本月余額)/b.本月余額*100 end 余額增長百分比
from
(
select
MONTH(日期) 月份,
isnull(SUM(收入金額),0) 本月收入總額,
isnull(SUM(支出金額),0) 本月支出總額,
isnull(SUM(收入金額),0)-isnull(SUM(支出金額),0) 本月余額
from 收支表
group by MONTH(日期)
) a
left join
(
select
MONTH(日期) 月份,
isnull(SUM(收入金額),0) 本月收入總額,
isnull(SUM(支出金額),0) 本月支出總額,
isnull(SUM(收入金額),0)-isnull(SUM(支出金額),0) 本月余額
from 收支表
group by MONTH(日期)
) b
on a.月份=b.月份+1
order by a.月份 desc
搞到最后才發(fā)現(xiàn)你是ACCESS數(shù)據(jù)庫,暈死,那以上SQL Server 代碼可能有些地方要修改
比如:case when then else end語句,不知ACCESS是否支持;
left join可能要改成left outer join;
isnull()函數(shù),不知access是否支持;
month()函數(shù),不知access是否支持;
用ACCESS完成這么復(fù)雜的運算,的確困難.
補充,用case主要是用來排除0和空值,比如,你6月份的收入為0,7月份的收入3500,那么收入增長百分比就是3500/0,結(jié)果是無窮大,你在ACCESS中怎么排除這種情況?
select * from xxxx where datediff(m,dt1,dt2)
datediff:日期比較函數(shù),SQL server自帶的,會將比較的兩個日期比較部分的差值返回,m表示比較月
SQL 同期對比月?
這個 同期的期, 是 年? 半年? 還是季度?
如果是年的話。就是 用 需要比較的日期 減去一年的 操作來處理。
如果是 半年的話, 用 需要比較的日期 減去6個月的 操作來處理。
如果是 季度的話, 用 需要比較的日期 減去3個月的 操作來處理。
至于 日期如何減 , 例如減少 6 個月。
Oracle 使用 ADD_MONTHS( 日期, -6 )
SQL Server 使用 DATEADD( mm, 日期, -6 )
MySQL 使用 DATE_SUB( 日期, INTERVAL 6 MONTH)
至于 如何多個字段確定一條數(shù)據(jù)。
這個不大清楚你的表是如何設(shè)計的。
一般情況下,是一個主鍵確定一條數(shù)據(jù)。
CREATE TABLE test_liupeng841121(
name VARCHAR(10),
year INT,
month INT,
sl INT
);
go
INSERT INTO test_liupeng841121
SELECT '福田', 2010, 11, 72 UNION ALL
SELECT '東本', 2010, 11, 85 UNION ALL
SELECT '古田', 2010, 11, 123 UNION ALL
SELECT '福田', 2010, 12, 96 UNION ALL
SELECT '東本', 2010, 12, 34 UNION ALL
SELECT '福田', 2011, 1, 78
go
SELECT
T_Now.name AS 名稱,
T_Now.year AS 年,
T_Now.month AS 月,
T_Now.sl AS 當(dāng)月數(shù)據(jù),
T_Prev.sl AS 上月數(shù)據(jù)
FROM
test_liupeng841121 T_Now LEFT JOIN
test_liupeng841121 T_Prev
ON (
T_Now.name = T_Prev.name
AND (
(T_Now.year = T_Prev.year AND T_Now.month = T_Prev.month + 1)
OR
(T_Now.year = T_Prev.year + 1 AND T_Now.month = 1 AND T_Prev.month = 12)
)
)
ORDER BY
T_Now.name, T_Now.year, T_Now.month
month(getdate())-month(createdate)-(case when day(getdate())day(createdate) then 1 else 0 end)
可以完成,思路如下:
通過pid 商品編碼分組,得到銷售日期的每個月列,后用sum(case?Fact_m?WHEN?月份 then?數(shù)量end)來操作即可.
--年度售額:
select?pid?商品編碼
,isnull(convert(dec(18,2),sum(case?Fact_m?WHEN?'01'?then?cCost?end)),0)?'countCost_1'
,isnull(convert(dec(18,2),sum(case?Fact_m?WHEN?'02'?then?cCost?end)),0)?'countCost_2'
,isnull(convert(dec(18,2),sum(case?Fact_m?WHEN?'03'?then?cCost?end)),0)?'countCost_3'
,isnull(convert(dec(18,2),sum(case?Fact_m?WHEN?'04'?then?cCost?end)),0)?'countCost_4'
,isnull(convert(dec(18,2),sum(case?Fact_m?WHEN?'05'?then?cCost?end)),0)?'countCost_5'
,isnull(convert(dec(18,2),sum(case?Fact_m?WHEN?'06'?then?cCost?end)),0)?'countCost_6'
,isnull(convert(dec(18,2),sum(case?Fact_m?WHEN?'07'?then?cCost?end)),0)?'countCost_7'
,isnull(convert(dec(18,2),sum(case?Fact_m?WHEN?'08'?then?cCost?end)),0)?'countCost_8'
,isnull(convert(dec(18,2),sum(case?Fact_m?WHEN?'09'?then?cCost?end)),0)?'countCost_9'
,isnull(convert(dec(18,2),sum(case?Fact_m?WHEN?'10'?then?cCost?end)),0)?'countCost_10'
,isnull(convert(dec(18,2),sum(case?Fact_m?WHEN?'11'?then?cCost?end)),0)?'countCost_11'
,isnull(convert(dec(18,2),sum(case?Fact_m?WHEN?'12'?then?cCost?end)),0)?'countCost_12'
,isnull(convert(dec(18,2),sum(cCost)))?'countTotal'?
from?Tab?group?by?pid?
--Fact_m?指的就是銷售日期[月],最后還有一列為年度總計
希望能幫到你!
分享名稱:sqlserver月同比的簡單介紹
當(dāng)前網(wǎng)址:http://chinadenli.net/article20/hdoeco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網(wǎng)站改版、網(wǎng)站維護(hù)、搜索引擎優(yōu)化、響應(yīng)式網(wǎng)站、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)