按日统计销售情况例子(每天的期末值是下一天的期初值)重要

原创 2011年01月12日 11:28:00

CREATE TABLE tb(
ID int IDENTITY PRIMARY KEY,
Item varchar(10),  --产品编号
Quantity int,      --交易数量
Flag bit,          --交易标志,1代表入库,0代表出库,这样可以有效区分退货(负数)
Date datetime)     --交易日期
INSERT tb SELECT 'aa',100,1,'2005-1-1'
UNION ALL SELECT 'aa',90 ,1,'2005-2-1'
UNION ALL SELECT 'aa',55 ,0,'2005-2-1'
UNION ALL SELECT 'aa',-10,1,'2005-2-2'
UNION ALL SELECT 'aa',-5 ,0,'2005-2-3'
UNION ALL SELECT 'aa',200,1,'2005-2-2'
UNION ALL SELECT 'aa',90 ,1,'2005-2-1'
UNION ALL SELECT 'bb',95 ,1,'2005-2-2'
UNION ALL SELECT 'bb',65 ,0,'2005-2-3'
UNION ALL SELECT 'bb',-15,1,'2005-2-5'
UNION ALL SELECT 'bb',-20,0,'2005-2-5'
UNION ALL SELECT 'bb',100,1,'2005-2-7'
UNION ALL SELECT 'cc',100,1,'2005-1-7'
GO
--select * from TB

--查询时间段定义
DECLARE @dt1 datetime,@dt2 datetime
SELECT @dt1='2005-2-1',@dt2='2005-2-10'

--查询
--统计时间段内无发生额的数据(如果这个不是查询需要的,去掉这段查询)
SELECT Item,
 Date=CONVERT(char(10),@dt1,120),
 Opening=SUM(CASE WHEN Flag=1 THEN Quantity ELSE -Quantity END),
 [IN]=0,
 [IN_Retrun]=0,
 [OUT]=0,
 [OUT_Return]=0,
 Balance=SUM(CASE WHEN Flag=1 THEN Quantity ELSE -Quantity END)
FROM tb a
WHERE Date<@dt1 AND NOT EXISTS(
 SELECT * FROM tb WHERE Item=a.Item AND Date>@dt1 AND Date<DATEADD(Day,1,@dt2))
GROUP BY Item
UNION ALL
--指定时间段内有交易发生的数据
SELECT Item,
 Date=CONVERT(char(10),Date,120),
 Opening=ISNULL((SELECT SUM(CASE WHEN Flag=1 THEN Quantity ELSE -Quantity END)
  FROM tb WHERE Item=a.Item AND Date<MIN(a.Date)),0),
 [IN]=ISNULL(SUM(CASE WHEN Flag=1 AND Quantity>0 THEN Quantity END),0),
 [IN_Retrun]=ISNULL(SUM(CASE WHEN Flag=1 AND Quantity<0 THEN -Quantity END),0),
 [OUT]=ISNULL(SUM(CASE WHEN Flag=0 AND Quantity>0 THEN Quantity END),0),
 [OUT_Return]=ISNULL(SUM(CASE WHEN Flag=0 AND Quantity<0 THEN -Quantity END),0),
 Balance=ISNULL((SELECT SUM(CASE WHEN Flag=1 THEN Quantity ELSE -Quantity END)
  FROM tb WHERE Item=a.Item AND Date<=MAX(a.Date)),0)
FROM tb a
WHERE Date>=@dt1 AND Date<DATEADD(Day,1,@dt2)
GROUP BY CONVERT(char(10),Date,120),Item
ORDER BY Item,Date

 

关于期初期末值累加的SQL语句

--select * from ReportDataSource order by CreationDate desc declare @StartDate varchar(10)=''; wit...
  • buynider
  • buynider
  • 2014年03月12日 14:09
  • 1691

NC单据期初数据从Excel导入

Excel数据导入说明 一、实现原理 通过Excel和配置文件建立NC数据项的对应关系,然后将Excel里面的数据组织成VO,最后将VO保存到数据库中。单据的主表数据和子表数据是分别导入的,也...
  • king_eagle
  • king_eagle
  • 2012年02月16日 14:45
  • 1501

BW系列基础

什么是sap的星型结构,能不能详细讲解一下? SAP BI 的星形结构是为了解决传统的星形结构存在的问题研发而成的。在SAP BI 星形结构中,事实表中的事实指的是关键值,维度属性指的是特性。维度表...
  • zyx19874
  • zyx19874
  • 2015年08月24日 14:34
  • 1525

每个渠道销售情况统计sql

select a.member_id,a.share_channel,sum(a.share_PV),sum(a.share_point),count(b.my_share_id),sum(order...
  • jalu
  • jalu
  • 2016年03月15日 18:29
  • 136

按日统计,销售情况例子

/*--示例--出处:邹建在代码中,首先定义了一个最简单的出入库数据记录明细表(tb),用来记录每笔出入库的交易情况。明细帐查询要求得到每种Item每天的期初数量、当天进货数、进货退回数、出货数、出货...
  • zlp321002
  • zlp321002
  • 2005年04月27日 12:00
  • 1110

完整英文版资产负债表、利润表及现金流量表

完整英文版资产负债表、利润表及现金流量表 Balance Sheet 资产负债表 ITEM项 目 Cash 货币资金 Short term inve...
  • david_520042
  • david_520042
  • 2015年08月03日 10:05
  • 2450

ERP-非财务人员的财务培训教(二)------如何评价公司/部门经营业绩

 一、财务比率分析第一节  流动性比率第二节  经营比率第三节  资本结构比率第四节  获利能力比率第五节  现金流量比率第六节  获现能力比率二、财务比率金字塔第二部分   如何评价公司/部门经营业...
  • wai631
  • wai631
  • 2007年10月10日 13:14
  • 5067

统计每日单量MySQL语句

-- 每日单量 select DATE_FORMAT(createtime,'%Y-%m-%d') as days,count(*) count from ibt_shop_order group ...
  • jiftlixu
  • jiftlixu
  • 2017年01月16日 17:12
  • 1216

特殊日历计算

总时间限制: 1000ms 内存限制: 65536kB 描述有一种特殊的日历法,它的一天和我们现在用的日历法的一天是一样长的。它每天有10个小时,每个小时有100分钟,每分钟有100秒。10...
  • cqsongmei
  • cqsongmei
  • 2016年08月22日 10:49
  • 410

kuaji

2009《初级会计实务》章节练习 第一章            总 论 一、单项选择题1.       不属于反映企业财务状况的会计要素的是( )。A.所有者权益 B.负债   C.利润    D.资...
  • luosuhui
  • luosuhui
  • 2009年08月20日 19:55
  • 1798
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:按日统计销售情况例子(每天的期末值是下一天的期初值)重要
举报原因:
原因补充:

(最多只允许输入30个字)