求sql语法?

csover8 2010-07-02 10:17:06
有表a,表b,表NonP

表a的大概架构是:

id babyid rdate IsB amount
1 26 2010-06 1 500
2 58 2010-06 0 200
3 26 2010-06 1 25

表b的大概架构是:
id aid bamount
1 1 250
2 1 200
3 3 25

表NonP的大概架构是:
babyid amount NonDate


如何通过表a,表b两个表的记录,通过SQL语法,得到每个对应babyid的amount的值后,插入到NonP表中去?
最近NonP的记录是这样的:

babyid amount NonDate
26 75 2010-06
58 0 2010-06
...全文
158 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
挨踢直男 2010-07-02
  • 打赏
  • 举报
回复
表设计有点问题 或者你问题没表达清楚
bbsxun 2010-07-02
  • 打赏
  • 举报
回复
select t2.babyid,sum(t2.amount) from (select t1.babyid,t1.amount-t.bamount as amount from a t1 left join (select aid,sum(bamount) from b group by aid) t on a.id=b.aid) t2 group by t2.babyid
vincentmax 2010-07-02
  • 打赏
  • 举报
回复
insert into NonP values = select a.babyid, sum(a.amount - b.bamount), a.rdate from a, b where a.id=b.id group by a.babyid

可能不同数据库具体语法不太一样,
但是逻辑就是这样了。
也可以利用中间表来做。
pgfpmnui 2010-07-02
  • 打赏
  • 举报
回复
SELECT t1.BabyID ,
t1.Amount - ISNULL(t2.Amount, 0)
FROM ( SELECT BabyID ,
SUM(Amount) AS Amount
FROM a
GROUP BY BabyID
) AS t1
LEFT JOIN ( SELECT a.BabyID ,
SUM(b.Amount) AS Amount
FROM a
INNER JOIN b ON a.ID = b.AID
GROUP BY a.BabyID
) AS t2 ON t1.BabyID = t2.BabyID
pgfpmnui 2010-07-02
  • 打赏
  • 举报
回复
逻辑好像不太对 或表结构设计得有点问题
jzxcmh 2010-07-02
  • 打赏
  • 举报
回复
不太懂
pgfpmnui 2010-07-02
  • 打赏
  • 举报
回复
问题描述不够清晰
csover8 2010-07-02
  • 打赏
  • 举报
回复
表NonP

babyid amount NonDate
26 75 2010-06
58 0 2010-06

第一行记录中的 75,是由表a中的babyid为26中的amount 500+25 减去表b中的aid为表a中的当前记录的(250+200) 得到的.

求解SQL语法?

zhan781443156 2010-07-02
  • 打赏
  • 举报
回复
就是,有些字段好像一样……
zxj7256 2010-07-02
  • 打赏
  • 举报
回复
貌似表B没用啊

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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