数据拆分

ysdsj2009 2010-03-03 04:32:18
借用别人的部分数据
表A1:
item order_qty mdate
A 850 07-18-09
A 300 07-20-09
B 150 07-18-09

表A2:
ID item bz_qty mdate
1 A 300 07-19-09
2 A 1000 07-19-09
1 B 200 07-21-09

如何通过查询或代码得到表 A3: <如下>
ID item order_qty kb_qty kb
1 A 1150 300 OK
2 A 850 1000 -150
1 B 150 200 -50
...全文
100 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2010-03-04
  • 打赏
  • 举报
回复
select ID,item,dsum('order_qty','A1','item="' & item & '"')-dsum('bz_qty','A2','item="' & item & '" and ID<' & ID),bz_qty ,
IIF(dsum('order_qty','A1','item="' & item & '"')-dsum('bz_qty','A2','item="' & item & '" and ID<' & ID)>bz_qty,
'OK',
dsum('order_qty','A1','item="' & item & '"')-dsum('bz_qty','A2','item="' & item & '" and ID<' & ID)-bz_qty)
from A2
order by item,id
ysdsj2009 2010-03-04
  • 打赏
  • 举报
回复
引用 12 楼 wwwwa 的回复:
tt1->a2
别名 A、B
你不会才学SQL吧?


才学加事情比较多没细看,所以给整乱了,见笑了~~~~~~~~~~~~,大侠
WWWWA 2010-03-04
  • 打赏
  • 举报
回复
tt1->a2
别名 A、B
你不会才学SQL吧?
ysdsj2009 2010-03-04
  • 打赏
  • 举报
回复
A.ID? B.ID
c.qq1?
TT1?
FROM A1
有点迷糊
WWWWA 2010-03-04
  • 打赏
  • 举报
回复
SELECT A.ID, A.item, A.bz_qty, A.mdate, max(c.qq1)-NZ(Sum(B.bz_qty),0) AS QQ,
iif(max(c.qq1)-NZ(Sum(B.bz_qty),0) -(a.bz_qty)>0,'ok',max(c.qq1)-NZ(Sum(B.bz_qty),0) -(a.bz_qty)) AS QQ1
FROM (TT1 AS A LEFT JOIN TT1 AS B ON A.[item] = B.[item] AND A.ID>B.ID)
LEFT JOIN (SELECT A1.item, Sum(A1.[order_qty]) AS QQ1
FROM A1
GROUP BY A1.item
) c on A.[item] = c.[item]
GROUP BY A.ID, A.item, A.bz_qty, A.mdate
order by
A.ID, A.item
ysdsj2009 2010-03-04
  • 打赏
  • 举报
回复
讲的有点不清楚,贴结果.表现的情形为第一次的不显示,出现二次后显示数据!
ID item Expr1002 bz_qty Expr1004
1 B 200
1 A 300
2 A 850 1000 -150

ysdsj2009 2010-03-04
  • 打赏
  • 举报
回复
引用 7 楼 ysdsj2009 的回复:
引用 6 楼 acmain_chm 的回复:select ID,item,dsum('order_qty','A1','item="' & item & '"')-dsum('bz_qty','A2','item="' & item & '" and ID <' & ID),bz_qty , IIF(dsum('order_qty','A1','item="' & item & '"')-dsum('bz_qty','A2','item="' & item & '" and ID <' & ID)>bz_qty, 'OK', dsum('order_qty','A1','item="' & item & '"')-dsum('bz_qty','A2','item="' & item & '" and ID <' & ID)-bz_qty) from A2 order by item,id

两个表达式返回结果为空值



说错了,应该是数量满足条件为OK的时候order_qty和kb列是空值
ysdsj2009 2010-03-04
  • 打赏
  • 举报
回复
引用 6 楼 acmain_chm 的回复:
select ID,item,dsum('order_qty','A1','item="' & item & '"')-dsum('bz_qty','A2','item="' & item & '" and ID <' & ID),bz_qty ,
IIF(dsum('order_qty','A1','item="' & item & '"')-dsum('bz_qty','A2','item="' & item & '" and ID <' & ID)>bz_qty,
'OK',
dsum('order_qty','A1','item="' & item & '"')-dsum('bz_qty','A2','item="' & item & '" and ID <' & ID)-bz_qty)
from A2
order by item,id


两个表达式返回结果为空值
ysdsj2009 2010-03-03
  • 打赏
  • 举报
回复
ID item order_qty kb_qty kb
1 A 1150 300 OK
2 A 850 1000 -150
1 B 150 200 -50

在表A1,A的数量之和是1150
当表A2第一次领出A 300后变成850,第二次要领出1000,数量不够所以为-150
wwwwb 2010-03-03
  • 打赏
  • 举报
回复
不明白,简要说明结果是怎样得出的
ysdsj2009 2010-03-03
  • 打赏
  • 举报
回复
引用 2 楼 ysdsj2009 的回复:
对表A1数据进行汇总的结果


往下的就是根据kb_qty减掉后的结果
ysdsj2009 2010-03-03
  • 打赏
  • 举报
回复
对表A1数据进行汇总的结果
wwwwb 2010-03-03
  • 打赏
  • 举报
回复
order_qty是怎样得出的?

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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