高分求SQL?
产品名称, 色号, 进货数量, 进货单价 销售数量, 时间
a 001 100 2.31 10 2003-2-1
a 001 20 2.31 2 2003-2-5
a 001 10 2.31 1 2004-1-1
b 002 10 2.0 1 2002-7-1
要如下结果:
按时间段查询从2003-3-1 到 2004-3-1
产品名称, 色号, 进货数量, 销售数量, 库存, 库存金额
a 001 10 1 117 117* 3.31
b 002 0 0 9 9*2.0
说明:进货数量, 销售数量是在该时间段发生的,库存是从最开始到2004-3-1 发生的。这样的SQL怎么写?
问题点数:50、回复次数:9Top
1 楼cdsun()回复于 2004-07-03 12:43:22 得分 10
不对阿
如果是按时间段查询从2003-3-1 到 2004-3-1
只能有一条阿Top
2 楼woff(狼)回复于 2004-07-03 12:44:55 得分 0
我写错了 应该是一条!!!!没有
b 002 0 0 9 9*2.0Top
3 楼woff(狼)回复于 2004-07-03 12:46:26 得分 0
我写错了 应该是一条!!!!没有
b 002 0 0 9 9*2.0
应该没有!!!!Top
4 楼youjei(飞一龙.net)回复于 2004-07-03 12:55:06 得分 10
"select * from 表名 where 时间头 between 时间尾"Top
5 楼cdsun()回复于 2004-07-03 12:55:16 得分 10
select * from table where 日期字段>2003-3-1 and 日期字段< 2004-3-1Top
6 楼woff(狼)回复于 2004-07-03 12:56:36 得分 0
楼上的你看没看
说明:进货数量, 销售数量是在该时间段发生的,库存是从最开始到2004-3-1 发生的。这样的SQL怎么写?
这句话呀!!!!1Top
7 楼woff(狼)回复于 2004-07-03 12:57:44 得分 0
库存是从最开始到2004-3-1 发生的
也就是说 不等于这个时间段,
而是从最开始录入数据的时间到2004-3-1!!!!!Top
8 楼wd_318(饭加加)回复于 2004-07-03 16:03:28 得分 10
select 产品名称,色号,SUM(CASE 时间>='2003-3-1' THEN 进货数量 ELSE 0 END) AS 进货数量,SUM(CASE 时间>='2003-3-1' THEN 销售数量 ELSE 0 END) AS 销售数量,
sum((进货数量-销售数量)*进货单价) AS 库存金额
FROM 表名 WHERE 时间<='2004-3-1'
GROUP BY 产品名称,色号Top
9 楼wd_318(饭加加)回复于 2004-07-03 16:18:19 得分 10
sqlstr = "select 产品名称,产品色号,SUM(IIF(时间>=#" + shijian1.Value + "#,进货数量,0)) AS 进货数量,SUM(IIF( 时间>=#" + shijian1.Value + "#,销售数量,0)) AS 销售数量,sum((进货数量-销售数量)*销售单价) AS 库存金额 FROM lychanpin WHERE 时间<=#" + shijian2.Value + "# GROUP BY 产品名称,产品色号"
这是ACCESS的用法Top




