ITPUB??ì3
12月微软Hyper-V虚拟化沙龙主题征集
ITPUB论坛 » Oracle开发 » 这sql该如何写?

标题: 这sql该如何写?
离线 Arraymailbob
老会员



精华贴数 1
个人空间 0
技术积分 1433 (1206)
社区积分 658 (1232)
注册日期 2001-11-6
论坛徽章:4
ITPUB元老会员2006贡献徽章授权会员生肖徽章2007版:兔  
      

发表于 2002-1-17 08:42 
这sql该如何写?

假如有一个表A
把每天的进货记录都存在其中,假设只有2种货品
如:
货品名,存入时间,数量
pen,2002/01/17,2支
book,2002/01/17,5本
pen,2002/01/21,8支
book,2002/02/12,9本
....     ....
....     ....

现在要做一个年度报表
形成格式如下:(不分区分货品名)
月份,上月结存,本月结存,
>01,0...........,7
>02,7............,16

请问sql语句该如何写?
谢谢!


__________________
<font color="darkblue"> 物有本末,事有终始,知所先后,则尽道矣!
只看该作者    顶部
离线 forestjohn
我是DBA


精华贴数 0
个人空间 0
技术积分 3349 (447)
社区积分 27 (6669)
注册日期 2001-10-12
论坛徽章:8
ITPUB元老管理团队2006纪念徽章会员2006贡献徽章   
      

发表于 2002-1-17 09:28 
怎么?货物只进不出么?
是不是可以用 select sum(数量) from A where 存入时间<某月   来进行12次计算


__________________
如果您觉得偶的贴子对你有帮助,请您给个好评--就是点一下贴子下面的小花
宠辱不惊,闲看庭前花开花落.去留无意,漫随天外云卷云舒.
只看该作者    顶部
离线 bluebluestar
蓝蓝星


精华贴数 0
个人空间 0
技术积分 718 (2688)
社区积分 187 (2517)
注册日期 2001-9-25
论坛徽章:4
ITPUB元老授权会员    
      

发表于 2002-1-17 10:19 
我就写了一个本月的,另一个你自己想想好了:
select  substr(to_char(access_time,'yyyymmdd'),5,2) month, sum(amount)  left from  goods
group by substr(to_char(access_time,'yyyymmdd'),5,2)


只看该作者    顶部
离线 mailbob
老会员



精华贴数 1
个人空间 0
技术积分 1433 (1206)
社区积分 658 (1232)
注册日期 2001-11-6
论坛徽章:4
ITPUB元老会员2006贡献徽章授权会员生肖徽章2007版:兔  
      

发表于 2002-1-17 11:11 
[QUOTE]最初由 forestjohn 发布
怎么?货物只进不出么?



:)
原题比这个要麻烦的多,我只是剪出一部分


__________________
<font color="darkblue"> 物有本末,事有终始,知所先后,则尽道矣!
只看该作者    顶部
在线/呼叫 biti_rainy
人生就是如此



精华贴数 38
个人空间 0
技术积分 111199 (4)
社区积分 11832 (132)
注册日期 2001-12-12
论坛徽章:41
现任管理团队成员ITPUB长老会成员ITPUB元老年度论坛发贴之星年度论坛发贴之星ITPUB北京九华山庄2008年会纪念徽章
管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章管理团队2006纪念徽章会员2007贡献徽章会员2006贡献徽章

发表于 2002-1-17 11:18 
结合上面的日期的处理,再自己整理整理,我想下面的例子能给你提示(这是刚给别人的一个例子,跟你的问题类似)

select * from testinx;

         Q1          Q2 Q3        
----------- ----------- ----------
          1           1           
          2           2           
          3           3           
          4           4           

SQL>
SQL> select sum(a.q2),b.q1 from testinx a,testinx b
  2  where a.q1<=b.q1 group by b.q1;

SUM(A.Q2)          Q1
---------- -----------
         1           1
         3           2
         6           3
        10           4

SQL>


__________________
眼界决定边界,态度决定高度
blog:
人生就是如此
只看该作者    顶部
离线 hyacinth
学无止境



精华贴数 1
个人空间 0
技术积分 792 (2435)
社区积分 181 (2565)
注册日期 2002-1-7
论坛徽章:2
ITPUB元老授权会员    
      

发表于 2002-1-17 15:36 
如果库里有几年的记录,你这样写显然是有问题的。

QUOTE:
最初由 bluebluestar 发布
我就写了一个本月的,另一个你自己想想好了:
select  substr(to_char(access_time,'yyyymmdd'),5,2) month, sum(amount)  
left from  goods
group by substr(to_char(access_time,'yyyymmdd'),5,2)


select to_char(access_time,'mm') month,sum(amount) left from goods
where to_char(access_time,'YYYY') = :YEAR
group by to_char(access_time,'mm')


__________________
没有比人更高的山,        没有比脚更长的路.Email: Hyacinth@itpub.net
只看该作者    顶部
离线 bluebluestar
蓝蓝星


精华贴数 0
个人空间 0
技术积分 718 (2688)
社区积分 187 (2517)
注册日期 2001-9-25
论坛徽章:4
ITPUB元老授权会员    
      

发表于 2002-1-17 15:48 
select substr(substr(to_char(access_time,'yyyymmdd'),1,6),5,2) month, sum(amount) left from goods
group by substr(to_char(access_time,'yyyymmdd'),1,6)


只看该作者    顶部
离线 yzf01
中级会员


精华贴数 0
个人空间 0
技术积分 1183 (1529)
社区积分 640 (1252)
注册日期 2001-11-19
论坛徽章:11
2008北京奥运纪念徽章:赛艇2008北京奥运纪念徽章:花样游泳2008北京奥运纪念徽章:曲棍球生肖徽章2007版:猪2008年新春纪念徽章生肖徽章2007版:鸡
      

发表于 2002-1-18 09:48 
上面的这位星星闪闪,你对SQL语法很熟。能不能留个email给我,我以后向你请教。


__________________
我每天都觉得很累。。。。。。
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问