辞职,散分!!!(带个SQL问题,可不回答,灌水有分) (200分)

  • 主题发起人 主题发起人 ysai
  • 开始时间 开始时间
to johnlhr:
FORM子句语法错误
 
把johnlhr兄语句中From后的“,”去掉,应该没错吧
 
楼上的高手,能不能再简?
问题是
材料=采购材料
这句,如果采购材料没有的话,材料也出不来,
有没有让材料没有相对的采购材料也能出来?
 
ACCESS中不是有自动生成的SQL语句功能吗, 你在那里试试,再对比一下
 
走好,祝老兄步步高升!
 
除了用UNION江两个结果集连接起来,你可以试一试用外连接语句,例如Left Join。
利用Left Join左外连接语句可以把两个关联表中的记录以第一个表的为基准表,如果第二个表里没有关联纪录也能得到相应结果集。
如果使用左连接则可以实现反方向的功能。
不知道你的具体表结构,不敢胡写,你可以针对自己的表结构,再看一看SQL参考手册。
不过我认为你的SQL语句的编写方法有点问题,对多个表的关联还是最好把语句的先后次序、里外次序和关系次序分清楚。
下面的语句在标准的SQL中应该支持,在Access 2000中不知行不行?
SELECT 材料,需求数量+预警数量-库存数量-采购数量 AS 数量
FROM
(
SELECT 材料 AS 采购材料,数量 AS 采购数量,需求数量,库存数量,预警数量
FROM 入库,入库明细)
Right Join 材料 on 材料=采购材料
WHERE 需求数量+预警数量-库存数量-采购数量>0
 
现在加了个功能,有个材料最小采购值,SQL语句如下:
SELECT 材料,IIF(
(需求数量+预警数量-库存数量-采购数量) MOD 最小采购数量=0,
需求数量+预警数量-库存数量-采购数量,
((需求数量+预警数量-库存数量-采购数量)/最小采购数量+1)*最小采购数量) AS 数量
FROM 材料, (SELECT 材料 AS 采购材料,数量 AS 采购数量
FROM 入库,入库明细
WHERE 入库.入库单ID=入库明细.入库单ID AND NOT 提交
UNION
SELECT 材料 AS 采购材料,0 AS 采购数量
FROM 材料
WHERE 材料 NOT IN
(
SELECT 材料
FROM 入库,入库明细
WHERE 入库.入库单ID=入库明细.入库单ID AND NOT 提交
)
)
WHERE 需求数量+预警数量-库存数量-采购数量>0 AND 材料=采购材料;
一个感觉,复杂,应该能简化,CEILING函数在ACCESS中不能用,
所能用IIF,有没有更好的方法?
上面的外连函数我会试一下。
 
我要分:)
 
to kmzwd:
我刚试了一下,在ACCESS中报错,说不支持联接表达式!
该死的M$!
 
心烦不想在脑里面运行sql语句了只能弄点分:)
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
493
import
I
I
回复
0
查看
605
import
I
后退
顶部