解决方案 »
- 一条关于利息计算的SQL谁会写?
- sqlserver里面的循环
- 安装sql2005开发版只有配置工具
- Access不支持“函数 连接查询”。
- 如何在存储过程中修改表结构
- 时间段统计问题
- 请教——SQL server 数据库是做什么的?怎么往里面写数据?up有分(接分人请进)up有分(邹建 水影注意接分)
- 查询某个字段值是否包含在某个字符串中。【查询求助】
- 范式到底有什么用?
- 一个比较复杂的搜索,请给出SQL语句,谢谢了!!
- sql 2008 ,删除msdb中sysjobs/sysjobschedules/sysjobsteps中某一作业的记录,但代理日志提示无法检索到该作业的步骤
- update: 在线等~!
if object_id('[入库表]') is not null drop table [入库表]
create table [入库表] (产品ID int,入库数量 int,入库日期 datetime)
insert into [入库表]
select 1,1000,'2010-4-30' union all
select 1,100,'2010-5-1' union all
select 1,200,'2010-5-2'
--> 测试数据: [出库表]
if object_id('[出库表]') is not null drop table [出库表]
create table [出库表] (产品ID int,出库数量 int,出库日期 datetime)
insert into [出库表]
select 1,200,'2010-5-1' union all
select 1,100,'2010-5-2'declare @star datetime
set @star='2010-5-1'
select 期初数,入库数量,出库数量,结余=期初数+入库数量-出库数量,日期=入库日期 from
(select 期初数=(select sum(入库数量) from 入库表 where datediff(dd,入库日期,a.入库日期)>0)-
isnull((select sum(出库数量) from [出库表] where datediff(dd,出库日期,a.入库日期)>0),0),
入库数量,出库数量=(select 出库数量 from [出库表] where datediff(dd,出库日期,a.入库日期)=0),
入库日期 from [入库表] a where datediff(dd,@star,入库日期)>=0)a
/*结果:
期初数 入库数量 出库数量 结余 日期
----------- ----------- ----------- ----------- -----------------------
1000 100 200 900 2010-05-01 00:00:00.000
900 200 100 1000 2010-05-02 00:00:00.000
*/
--大致写了一下,算练练手,好久不写了
create table test(产品ID int,入库数量 int,入库日期 datetime)
insert into test values(1, 1000 ,'2010-4-30')
insert into test values(1, 100 ,'2010-5-1')
insert into test values(1, 200, '2010-5-2')create table testOut(产品ID int, 出库数量 int, 出库日期 datetime)
insert into testOut values(1, 200, '2010-5-1')
insert into testOut values(1, 100, '2010-5-2')select a.产品ID,期初数=(select 入库数量 from test where datediff(day,入库日期,dateadd(day,-1,a.入库日期))=0)
,a.入库数量,b.出库数量,
结余=(select 入库数量 from test where datediff(day,入库日期,dateadd(day,-1,a.入库日期))=0)+a.入库数量-b.出库数量,a.入库日期
from test a,testOut b
where a.产品ID=b.产品ID and datediff(day,a.入库日期,b.出库日期)=0drop table test
drop table testOut1 1000 100 200 900 2010-05-01 00:00:00.000
1 100 200 100 200 2010-05-02 00:00:00.000
1.建一个表A,表结构如下:
产品ID 日期 入库数量 出库数量2.把你表中的数据更新到表A里面3.按产品ID分类统计各产品在5月1号后的数量select 产品ID,(SUM(入库数量)-SUM(出库数量))as 结存数量
from A
where 日期>='2010-05-01'
group by 产品ID
---要用动态sql的话,把用带日期参数存储过程了,存储过程里面运行动态sql。