请问如何列出三个表中的数据?

softheaded 2005-12-11 04:14:36
现在以下三个表:
rk: rkbh,rksl,cbje,jjje
kc: rkbh,kcsl,cbje,jjje
ck: rkbh,sum(cksl),sum(cbje),sum(jjje)
如何列出来呢?谢谢!
...全文
217 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
softheaded 2005-12-12
  • 打赏
  • 举报
回复
谢谢,明天晚急着接儿子学习,没来得及看您的留言。sum是求和的。
lw1a2 2005-12-12
  • 打赏
  • 举报
回复
如果不是pj_rk和pj_kc一对一,pj_kc和pj_ck一对多的话,是肯定会出错的
softheaded 2005-12-12
  • 打赏
  • 举报
回复
发现了,原来写错了
where pj_rk.rkbh=pj_kc.rkbh and pj_ck.ckbh=pj_kc.rkbh and pj_rk.rq>='2005-01-01'
where pj_rk.rkbh=pj_kc.rkbh and pj_ck.rkbh=pj_kc.rkbh and pj_rk.rq>='2005-01-01'
softheaded 2005-12-12
  • 打赏
  • 举报
回复
谢谢,可以执行了,但是我的数据为什么不对呢?
select pj_rk.rkbh,pj_rk.rq,(pj_rk.rksl-pj_rk.thsl) as rkrksl,pj_rk.cbje,pj_rk.jjje,pj_kc.kcsl,pj_kc.cbje,
pj_kc.jjje,sum(pj_ck.cksl-pj_ck.tlsl) as ckcksl,sum(pj_ck.cbje-pj_ck.tlcbje) as ckcbje,sum(pj_ck.jjje-pj_ck.tljjje) as ckjjje
from pj_rk,pj_kc,pj_ck
where pj_rk.rkbh=pj_kc.rkbh and pj_ck.ckbh=pj_kc.rkbh and pj_rk.rq>='2005-01-01'
group by pj_rk.rkbh,pj_rk.rq,(pj_rk.rksl-pj_rk.thsl),pj_rk.cbje,pj_rk.jjje,pj_kc.kcsl,pj_kc.cbje,pj_kc.jjje
having (pj_rk.rksl-pj_rk.thsl)>pj_kc.kcsl+sum(pj_ck.cksl-pj_ck.tlsl)
这样列出的数据,我在程序中发现,并没有错误啊?
lw1a2 2005-12-12
  • 打赏
  • 举报
回复
不好意思,我给的答案真是错误百出呀。

select rk.rkbh,rk.rksl,rk.cbje,rk.jjje,kc.kcsl,kc.cbje,kc.jjje,sum(cksl),sum(ck.cbje),sum(ck.jjje)
from rk,kc,ck
where rk.rkbh=kc.rkbh and ck.ckbh=kc.rkbh
group by rk.rkbh,rk.rksl,rk.cbje,rk.jjje,kc.kcsl,kc.cbje,kc.jjje
having rk.rksl<>kc.kcsl+sum(cksl)
softheaded 2005-12-12
  • 打赏
  • 举报
回复
再次感谢,遇到了问题,白天来问了之后,被领导安排别的事情了,还没时间看。现在在加班。
看来我的意思还没说明白,是这样的,一条数据入库了以后,可以分多次出库,我想把入库编号相同的入库数据,库存数据,出库数据列出来。
按您的做法,出现下边的错误
服务器: 消息 147,级别 15,状态 1,行 5
聚合不应出现在 WHERE 子句中,除非该聚合位于 HAVING 子句或选择列表所包含的子查询中,并且要对其进行聚合的列是外部引用。
lw1a2 2005-12-12
  • 打赏
  • 举报
回复
我实在不太明白,不同rkbh的入库数量等只有一条,而不同ckbh的出库数量却有很多条需要求和?

select rk.rkbh,rk.rksl,rk.cbje,rk.jjje,kc.kcsl,kc.cbje,kc.jjje,sum(cksl),sum(cbje),sum(jjje)
from rk,kc,ck
where rk.rkbh=kc.rkbh and ck.ckbh=kc.rkbh and rk.rksl<>kc.kcsl+sum(cksl)
group by rk.rkbh,rk.rksl,rk.cbje,rk.jjje,kc.kcsl,kc.cbje,kc.jjje
softheaded 2005-12-12
  • 打赏
  • 举报
回复
select rk.rkbh,rk.rksl,rk.cbje,rk.jjje,kc.kcsl,kc.cbje,kc.jjje,[sum(cksl)],[sum(cbje)],[sum(jjje)]
from rk,kc,ck
where rk.rkbh=kc.rkbh and ck.ckbh=kc.rkbh and rk.rksl<>kc.kcsl+ck.[sum(cksl)]
想按rkbh求和sum(cksl),sum(cbje),sum(jjje)怎么写呢?
lw1a2 2005-12-11
  • 打赏
  • 举报
回复
难道那些sum不是求和,是字段名?

select rk.rkbh,rk.rksl,rk.cbje,rk.jjje,kc.kcsl,kc.cbje,kc.jjje,[sum(cksl)],[sum(cbje)],[sum(jjje)]
from rk,kc,ck
where rk.rkbh=kc.rkbh and ck.ckbh=kc.rkbh and rk.rksl<>kc.kcsl+ck.[sum(cksl)]
softheaded 2005-12-11
  • 打赏
  • 举报
回复
rk.rkbh 和kc.rkbh 都是唯一的
dldongdong 2005-12-11
  • 打赏
  • 举报
回复
是的啊
lw1a2 2005-12-11
  • 打赏
  • 举报
回复
比较混乱呀,出库数量要按编号求和,而入库数量却不要?
softheaded 2005-12-11
  • 打赏
  • 举报
回复
列出rk.rkbh,rk.rksl,rk.cbje,rk.jjje,kc.kcsl,kc.cbje,kc.jjje,sum(cksl),sum(cbje),sum(jjje)
最好有一个条件 rk.rksl<>kc.kcsl+ck.sum(cbsl)
lw1a2 2005-12-11
  • 打赏
  • 举报
回复
想列出什么样数据?

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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