求SQL语句(急,急,急)(100分)

  • 主题发起人 主题发起人 gutian
  • 开始时间 开始时间
G

gutian

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个结构为如下的表:
品名 上期结存 今日入库 今日出库 本期结存 日期
我想通过一条SQL语句实现如下结果:
品名 上期结存 本期入库 本期出库 本期结存
 
本期入库,本期出库是什么?
 
select 品名 sum(上期结存), sum(本期入库), sum(本期结存)
from table1 where ...
group by 品名

本期出库 用计算字段

 
各位大哥:
上期结存与本期结存是各期累计的结果,不需要再SUM()了!!!!
 
一个问题:上期和本期是如何划分?
 
一个问题:上期和本期是如何划分?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
应该是期初和期末!!
 

select b.品名, b.上期结存, a.zrk 本期入库, a.zck 本期出库, b.本期结存 from
(select 品名, sum(本期入库) zrk, sum(本期出库) zck from table1
where 日期>期初 and 日期<期末 group by 品名) a,
(select 品名, 上期结存, 本期结存 from table1 where 日期=最大日期) b
where b.品名=a.品名
没经过测试,你可以试试.
 
我看了一下YuBo的思路,应该可以,
但"(select 品名, 上期结存, 本期结存 from table1 where 日期=最大日期) b"该句
中的'日期=最大日期'的如何实现,在下见解如下,把表b改为(用SQl语句实现):
(select top 1 c.日期,c.品名 from table1 c) b

 
对不起,漏了一些东西
我看了一下YuBo的思路,应该可以,
但"(select 品名, 上期结存, 本期结存 from table1 where 日期=最大日期) b"该句
中的'日期=最大日期'的如何实现,在下见解如下,把表b改为(用SQl语句实现):
(select top 1 c.日期,c.品名,c.上期结存,c.本期结存 from table1 c) b

用'top 1 c.日期'即可得到唯一的最大日期
 
我认为应该如下:
select b.品名, b.上期结存, a.zrk 本期入库, a.zck 本期出库, C.本期结存 from
(select 品名, sum(本期入库) zrk, sum(本期出库) zck from table1
where 日期=>期初 and 日期<=期末 group by 品名) a,
(select top 1 品名, 上期结存 from table1 order by 日期) b,
(select top 1 品名, 本期结存 from table1 order by 日期 desc) c
where b.品名=a.品名 and b.品名=c.品名

 
tsfzy的语句结构应该没什么问题了
 
如果在本期中发生的物资是期初没有,是否会丢失呢
 
Sorry,更正一下我的意见:
select b.品名, b.上期结存, a.zrk 本期入库, a.zck 本期出库, C.本期结存 from
(select 品名, sum(本期入库) zrk, sum(本期出库) zck from table1
where 日期=>期初 and 日期<=期末 group by 品名) a,
(select 品名, 上期结存 from table1 where 日期=期初 and
日期=>期初 and 日期<=期末) b,
(select 品名, 本期结存 from table1 where 日期=期末 and
日期=>期初 and 日期<=期末) c
where b.品名=a.品名 and b.品名=c.品名


 
接受答案了.
 
后退
顶部