在ASP中实现的SQL语句问题!急! 给100分,在线等

jerrygd 2003-08-21 04:54:38
有三个表total、record和records;表结构分别为:
total:
warehouse(仓库名) | month(月份) | beginstock(期初数量)
record:
id(单据号) | warehouse | wdate(日期)| type(单据类型01表示出库,02表示入库;正数为出/入库,负数为退货/退库)
records:
id(单据号) | goods_no(货品代码) | color(颜色) | quantity(数量)

要得出如下两个报表:
表一:
仓库 月份 期初 入库合计 退库合计 出库合计 退货合计 结存合计
表二:
仓库 月份 货品代码 颜色 期初 入库 退库 出库 退货 结存

请各位在线的大虾不吝赐教!
jerry xu
马上给分!^.^
...全文
51 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
danger1 2003-08-22
  • 打赏
  • 举报
回复
select 里是不能用别名之间的运算来做为一列的,只需要用上面的来替换就可以啦,为了求简单直观就这样写啦。
jerrygd 2003-08-22
  • 打赏
  • 举报
回复
danger1兄台的方法我查询分析器里报无效列'ck'、'rk'、'结存'; zhaobohao(中文字符)兄台的方法简单,稍微改进一下查询条件就可得出要的结果,再做一些计算即可;同时我也试了分别把结果取出来的方法,只是查询速度上有差异,结果都能出来!
谢谢各位兄台的赐教!
maxid 2003-08-21
  • 打赏
  • 举报
回复
对,我们只提供个思路,所以嘛,你要多思才也进步
formatkm 2003-08-21
  • 打赏
  • 举报
回复
有sql的视图嘛,这个只要动动鼠标就可以实现了!
danger1 2003-08-21
  • 打赏
  • 举报
回复
别太死板,别人写得SQL语句只是给你提供参考,告诉你思路,最后还得你自己在上面修改,只有你才有环境去测试
zhaobohao 2003-08-21
  • 打赏
  • 举报
回复
大家说我那个方法怎么样。。由简单,有好用。。。你就听我的把,用我的,肯定一次就可以了。。哈哈。。
maxid 2003-08-21
  • 打赏
  • 举报
回复
是那个不行了?
zhaobohao 2003-08-21
  • 打赏
  • 举报
回复
还有什么问题快点说。我一会就下班了。。赫赫。。
zhaobohao 2003-08-21
  • 打赏
  • 举报
回复
select * from total,record,records where total.warehouse=record.warehouse and record.id = records.id

兄弟,你用这个语句,就可以把你相关联的数据都取出来了。然后你按照自己的要求,加减乘除就可以了。嗬嗬,这个市最简单的。。我想你能看懂吧。
jerrygd 2003-08-21
  • 打赏
  • 举报
回复
不行
zhaobohao 2003-08-21
  • 打赏
  • 举报
回复
兄弟们.不用谢这么复杂的sql语句吧,给他写几个简单的好了,其实这个问题,很简单。你只要一个一个把数值取出来,加加减减就可以了呀。。。
danger1 2003-08-21
  • 打赏
  • 举报
回复
group多余啦
maxid 2003-08-21
  • 打赏
  • 举报
回复
原来rk-ck+tk是结存~~
danger1 2003-08-21
  • 打赏
  • 举报
回复
select a.warehose,a.month,a.beginstock,
(select sum(c.quantity) from record b,records c where b.id=c.id and b.type='02' and xxx(wdate)=a.month) as rk,
(select sum(c.quantity) from record b,records c where b.id=c.id and b.type='01' and xxx(wdate)=a.month) as ck,
(select sum(c.quantity) from record b,records c where b.id=c.id and b.type='-1' and xxx(wdate)=a.month) as tk,
rk-ck+tk as jc
from total a group by a.warehose,a.month

没有经过验证 xxx() 为你所用数据库的日期转换函数
maxid 2003-08-21
  • 打赏
  • 举报
回复
大头虾写,还是写错了,对不起
select total.*, (select count(record.*) from record where record.type=02) as 入库合计, select count(record.*) from record where record.type<0) as 退库合计, select count(record.*) from record where record.type=01) as 出库合计, select count(record.*) from record where record.type>0) as 退货合计........(同上) from total,record where total.warehouse = record.warehouse
...你试试行不行,可以先在数据库上试一下
maxid 2003-08-21
  • 打赏
  • 举报
回复
看了一下 from 子句少了个total表
select total.*, (select count(record.*) from record where record.type=02) as 入库合计, select count(record.*) from record where record.type<0) as 退库合计, select count(record.*) from record where record.type=01) as 出库合计, select count(record.*) from total,record where record.type>0) as 退货合计........(同上) where total.warehouse = record.warehouse
maxid 2003-08-21
  • 打赏
  • 举报
回复
什么是结存?
表二和表一差不多,不写了
业余程序员 2003-08-21
  • 打赏
  • 举报
回复
要用一个二维数组才能解决这个问题,
total 表中的 month 和 record表中的wdate要相结合查询,有点难度100分可能还不够.我先试试看.
maxid 2003-08-21
  • 打赏
  • 举报
回复
表一
select total.*, (select count(record.*) from record where record.type=02) as 入库合计, select count(record.*) from record where record.type<0) as 退库合计, select count(record.*) from record where record.type=01) as 出库合计, select count(record.*) from record where record.type>0) as 退货合计........(同上) where total.warehouse = record.warehouse
jerrygd 2003-08-21
  • 打赏
  • 举报
回复
sql语句,谢谢!
加载更多回复(4)

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧