久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

如何計算期初和期末數量余額 SQL Server

How to calculate Opening and Closing quantity Balances SQL Server(如何計算期初和期末數量余額 SQL Server)
本文介紹了如何計算期初和期末數量余額 SQL Server的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我有以下表格結構

TransactionDate Item RecQty IssueQty1-jun-2011 A 10 02-jun-2011 A 15 02011 年 6 月 3 日 A 20 02011 年 6 月 4 日 A 0 202011 年 6 月 4 日 A 0 20

我想要特定日期的結果,即 2-jun-2011

 Item Opening RecQty IssueQty BalanceQty10 15 0 25

2011 年 1 月 4 日

 Item Opening RecQty IssueQty BalanceQty45 0 40 5

解決方案

我打算至少假設 SQL Server 2005.將來,請使用您需要支持的最低版本指定/標記問題.

>

創建表#x(交易日期 SMALLDATETIME,項目 CHAR(1), RecQty INT, IssueQty INT);插入 #x 選擇 '20110601','A',10,0UNION ALL SELECT '20110602','A',15,0UNION ALL SELECT '20110603','A',20,0UNION ALL SELECT '20110604','A',0,20UNION ALL SELECT '20110604','A',0,20;聲明 @StartDate SMALLDATETIME = '20110601',@Date SMALLDATETIME = '20110602';WITH x(Item, prevR, prevI, curR, curI) AS(選擇物品,SUM(CASE WHEN TransactionDate < @Date THEN RecQty ELSE 0 END),SUM(CASE WHEN TransactionDate < @Date THEN IssueQty ELSE 0 END),SUM(CASE WHEN TransactionDate = @Date THEN RecQty ELSE 0 END),SUM(CASE WHEN TransactionDate = @Date THEN IssueQty ELSE 0 END)FROM #x WHERE TransactionDate BETWEEN @StartDate 和 @Date按項目分組)選擇物品,開場 = prevR - prevI,RecQty = curR,IssueQty = curI,BalanceQty = (prevR - prevI) + (curR - curI)從 x;刪除表#x;

I have the following table strucature

TransactionDate   Item  RecQty  IssueQty

1-jun-2011         A      10      0
2-jun-2011         A      15      0
3-jun-2011         A      20      0
4-jun-2011         A       0     20
4-jun-2011         A       0     20

And I want the result on specific Date i.e 2-jun-2011

 Item    Opening     RecQty  IssueQty  BalanceQty
  A       10            15     0         25

And on 4-Jan-2011

 Item    Opening     RecQty  IssueQty  BalanceQty
  A       45            0     40         5

解決方案

I'm going to assume at least SQL Server 2005. In the future, please specify/tag the question with the minimum version you need to support.

CREATE TABLE #x
(
    TransactionDate SMALLDATETIME,
    Item CHAR(1), RecQty INT, IssueQty INT
);

INSERT #x SELECT '20110601','A',10,0
UNION ALL SELECT '20110602','A',15,0
UNION ALL SELECT '20110603','A',20,0
UNION ALL SELECT '20110604','A',0,20
UNION ALL SELECT '20110604','A',0,20;

DECLARE @StartDate SMALLDATETIME = '20110601', 
        @Date      SMALLDATETIME = '20110602';

WITH x(Item, prevR, prevI, curR, curI) AS
(
    SELECT 
        Item,
        SUM(CASE WHEN TransactionDate < @Date THEN RecQty ELSE 0 END),
        SUM(CASE WHEN TransactionDate < @Date THEN IssueQty ELSE 0 END),
        SUM(CASE WHEN TransactionDate = @Date THEN RecQty ELSE 0 END),
        SUM(CASE WHEN TransactionDate = @Date THEN IssueQty ELSE 0 END)
    FROM #x WHERE TransactionDate BETWEEN @StartDate AND @Date
    GROUP BY Item
)
SELECT 
    Item,
    Opening = prevR - prevI,
    RecQty = curR,
    IssueQty = curI,
    BalanceQty = (prevR - prevI) + (curR - curI)
FROM x;

DROP TABLE #x;

這篇關于如何計算期初和期末數量余額 SQL Server的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Converting Every Child Tags in to a Single Column with multiple Delimiters -SQL Server (3)(將每個子標記轉換為具有多個分隔符的單列-SQL Server (3))
How can I create a view from more than one table?(如何從多個表創建視圖?)
Create calculated value based on calculated value inside previous row(根據前一行內的計算值創建計算值)
How do I stack the first two columns of a table into a single column, but also pair third column with the first column only?(如何將表格的前兩列堆疊成一列,但也僅將第三列與第一列配對?) - IT屋-程序員軟件開發技
Recursive t-sql query(遞歸 t-sql 查詢)
Convert Month Name to Date / Month Number (Combinations of Questions amp; Answers)(將月份名稱轉換為日期/月份編號(問題和答案的組合))
主站蜘蛛池模板: 欧美久久精品一级黑人c片 91免费在线视频 | 波多野结衣精品在线 | 韩日一区二区三区 | 久久午夜国产精品www忘忧草 | 性一交一乱一伦视频免费观看 | 国产精品不卡 | 精品九九九 | 久久男人天堂 | 日本福利一区 | 久久99久久99久久 | 日韩中文字幕一区 | 成人三级在线观看 | 色在线免费视频 | 亚洲欧美一区二区三区1000 | 久久国产精品久久久久 | 欧美一区二区激情三区 | 精品视频一区二区三区在线观看 | 9999国产精品欧美久久久久久 | 免费一区二区 | 成人国产精品久久 | 99久久精品视频免费 | 亚洲精品久久久一区二区三区 | 国产高清av免费观看 | 日韩欧美网 | 国产一区二区三区 | 亚洲视频中文字幕 | 欧美一区二区黄 | 亚洲九九色 | 免费看啪啪网站 | 亚洲 欧美 日韩 在线 | 超碰在线播 | 成人免费视频观看 | 日日噜噜噜夜夜爽爽狠狠视频97 | 亚洲一一在线 | 精精国产xxxx视频在线 | 婷婷去俺也去 | 亚洲欧美一区二区三区在线 | 日韩不卡三区 | 91精品国产自产精品男人的天堂 | 18性欧美| 91极品欧美视频 |