设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 2637|回复: 21
打印 上一主题 下一主题

[查询] 初哥又来了,这个查询怎样做?

[复制链接]
跳转到指定楼层
1#
发表于 2006-8-22 04:31:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
22#
 楼主| 发表于 2006-8-23 02:10:00 | 只看该作者
有谁可以帮忙解释一下wwwwa的SQL语句啊?
21#
 楼主| 发表于 2006-8-23 00:43:00 | 只看该作者
是啊,我也是想分解为多个比较简单的查询,这样比较好理解一点,但做了一下午还是分解不出来,你能帮我分解一下吗?
20#
发表于 2006-8-23 00:35:00 | 只看该作者
以下是引用cyber-bobo在2006-8-22 16:02:00的发言:
解释一下你的思路和语句的做法!

你要做的是,把查询分解成若干分支,慢慢理解。
19#
 楼主| 发表于 2006-8-23 00:02:00 | 只看该作者
解释一下你的思路和语句的做法!
18#
发表于 2006-8-22 23:21:00 | 只看该作者
OR 用前一次结果 UNION

表2有而表1没有的记录
17#
发表于 2006-8-22 23:20:00 | 只看该作者
TRY:

SELECT id, 名称, 数量, 应提数量, 生产日期, IIF(ISNULL(需求数量1),DD,需求数量1) AS 需求数量
FROM (SELECT id, 名称, 应提数量, 生产日期, 库存, 数量, lj, C.DD, lj-C.DD AS ce,
iif(生产日期=(select max(生产日期) from 表1 where c.名称=名称) and lj<提货数量,1,0) AS bj, iif(ce>0,1,0) AS bj1,
iif(bj=0 and bj1=0,应提数量,iif((bj=0 and bj1=1 and ce<0) or (bj=1 and bj1=0),-1*ce+数量,应提数量)) AS 需求数量1
FROM (
select a.*,b.提货数量 AS DD,iif(lj>=提货数量,数量-(lj-提货数量),数量) as 应提数量,
iif(lj-提货数量>=0 and 库存<=数量 and 应提数量<>0,1,0 ) as bz,
iif(a.lj>=提货数量,lj-[提货数量],0) AS 库存
from (
SELECT A.id, IIF(ISNULL(a.名称),b.名称,A.名称) AS 名称, A.数量, A.生产日期, B.提货数量,A.LJ
FROM (select *,(select sum(数量)  from 表1 where 生产日期<=a.生产日期 and 名称=a.名称) as lj
from (SELECT * FROM 表1 order by 生产日期) a) AS A RIGHT JOIN 表2 AS b ON a.名称=b.名称
ORDER BY A.名称, 生产日期) AS A
) AS c
WHERE 库存=0 OR Bz=1) ORDER BY 名称, 生产日期
16#
 楼主| 发表于 2006-8-22 22:48:00 | 只看该作者
还有:这个查询能分解为多个比较简单的查询吗?
15#
 楼主| 发表于 2006-8-22 22:35:00 | 只看该作者

还是wwwwa厉害,一定要收藏!

还有最后一种情况,就是要提的产品在库存里没有的,如下图:


还是请wwwwa解释一下你的语句吧,我看了半天都不懂,现在有的头晕啊!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
14#
发表于 2006-8-22 22:32:00 | 只看该作者
or

SELECT id, 名称, 数量, 应提数量, 生产日期, 需求数量
FROM (SELECT id, 名称, 应提数量, 生产日期, 库存, 数量, lj, 提货数量, lj-提货数量 AS ce,
iif(生产日期=(select max(生产日期) from 表1 where c.名称=名称) and lj<提货数量,1,0) AS bj, iif(ce>0,1,0) AS bj1,
iif(bj=0 and bj1=0,应提数量,iif((bj=0 and bj1=1 and ce<0) or (bj=1 and bj1=0),-1*ce+数量,应提数量)) AS 需求数量
FROM (select a.*,b.提货数量,iif(lj>=提货数量,数量-(lj-提货数量),数量) as 应提数量,
iif(lj-提货数量>=0 and 库存<=数量 and 应提数量<>0,1,0 ) as bz,
iif(a.lj>=提货数量,lj-[提货数量],0) AS 库存
from (
select *,(select sum(数量)  from 表1 where 生产日期<=a.生产日期 and 名称=a.名称) as lj from (
SELECT *
FROM 表1 order by 生产日期) a
order by 名称,生产日期) a
left join 表2 b on a.名称=b.名称) AS c
WHERE 库存=0 OR Bz=1)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-26 23:22 , Processed in 0.112662 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表