Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
288 views
in Technique[技术] by (71.8m points)

sql - Find SUM of child table column is less than parent child total column

I am trying since 4 hours to write a SQL query which can show records if child table transections(amount) exceed the maximum limit defined in parent table. TB1 is parent table while TB2 is child table. Here is the query:

SELECT 
    SUM(b.amount) AS sum_transection,
    a.amount AS total,
    sum_transection - total AS diff
FROM 
    dbo.tb1 a INNER JOIN  dbo.tb2 b ON
    a.grp = b.grp AND a.head = b.head 
WHERE
     sum_transection - total >0

enter image description here

question from:https://stackoverflow.com/questions/65848018/find-sum-of-child-table-column-is-less-than-parent-child-total-column

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I think you should use Group by for your requirement, and can't use Alias in Where condition in your case. (I'm using SQL Server, not sure if you have different tools) I made some changes like that

SELECT 
    SUM(b.amount) AS sum_transection,
    a.amount AS total,
    SUM(b.amount) - a.amount AS diff
FROM 
    dbo.tb1 a INNER JOIN  dbo.tb2 b ON
    a.grp = b.grp AND a.head = b.head 
GROUP BY a.grp, a.amount
having SUM(b.amount) - a.amount >0

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...