求助sql语句

cercicm4 2006-10-09 10:03:56
有两个表A、B,A表中有字段invNO,totalamt,
B表中有字段orderno,invno
其中invno对应会有多个orderno ,现在我想实现的是,如果A表中的invno在B表中对应的orderno有n个,那么在两个表连接select的时候,我想把totalamt的值变成totalamt/n,
如何实现?
...全文
227 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
akuzou 2006-10-09
  • 打赏
  • 举报
回复
select invno,totalamt/(select count(*) from B where A.invno=B.invno group by B.invno) from A
dulei115 2006-10-09
  • 打赏
  • 举报
回复
select a.invNo, a.totalamt/c.num, b.orderno
from A join B on a.invNo = b.invNo
join (select invno, count(1) as num from B group by invno) c on a.invno = c.invno

or

select a.invNo, a.totalamt/count(b.*)
from A join B on a.invNo = b.invNo
group by a.invno, a.totalamt
tx1icenhe 2006-10-09
  • 打赏
  • 举报
回复
select a.invno,casr when isnull(b.cnt,0)=0 then a.totalamt else a.totalamt/t.cnt end as totalamt
from a left join (
select invno,count(distinct orderno) as cnt
from b
group by invno
) as t
on a.invno=t.invno
pxiaoli 2006-10-09
  • 打赏
  • 举报
回复
select a.invNo, a.totalamt/count(b.*)
from A join B on a.invNo = b.invNo
group by a.invno, a.totalamt

我喜欢这种方法
李必胜 2006-10-09
  • 打赏
  • 举报
回复
select A.invNO, A.totalamt/isnull(C.NUM, 1) as totalamt from A
left join
(select invNo, count(*) as NUM from B group by invNo) C
on A.invNO = C.invNo

34,575

社区成员

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

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