gpt4 book ai didi

mysql - 嵌套 SQL 查询并验证未偿金额

转载 作者:行者123 更新时间:2023-11-29 19:30:51 25 4
gpt4 key购买 nike

我有 4 张 table 。

表 1:Invoice_Number、金额、OutStanding_Amount

表2:ID、金额

表3:ID、金额

表 4:ID、文本、编号、Invoice_Number

示例数据:

表 1:

    1001, 5000,3000

表 2:

     6, 2000
10,1000

表 3:

     8, 2000

表 4:

     1,Table_2,6,1001
2,Table_3,8,1001
3, Table_2,10,1001

未结金额=金额(发票)-金额(表2)-金额(表3)当然都是相同的发票号码。

查询应输出更正的未偿还金额。在这种情况下,正确的未偿还金额为 0 而不是 3000。请注意,其中一张表(即表 2 或表 3)中可能没有该发票编号的条目。

概念:

  1. 浏览表 1 中的每一行。

  2. 从表 4 中选取所有行,其中发票编号 = 表 1 中的发票编号。

  3. 从表 2 条目中获取总和(金额),其中 Text= 'Table 2' 从第 2 步中的行检索,id = id(从第 2 步检索)。

  4. 从第 2 步中 Text = 'Table 3' 且 id = id(从第 2 步中检索)的行中检索的 id 中获取表 3 条目的总和(金额)。

  5. 将这些金额相加,然后从我们在步骤 1 中获得的表 1 中的金额中减去。

  6. 检查是否与未结金额相同,如果不同则输出更正后的未结金额和发票编号。

如何将这个想法转换为正确的 SQL 查询以获得所需的输出?

最佳答案

只需根据发票号码查询

select t1.invoice_number,Case WHEN t1.Outstanding_amount=(t1.amount-t2.amount-t3.amount) Then t1.Outstanding_amount ELSE  (t1.amount-t2.amount-t3.amount) from table_1 t1 
join table_4 t4 on t1.Invoice_number=t4.Invoice_number
Join table_2 t2 on t4.text=t2.ID
Join Table_3 t3 on t4.text=t3.id where t1.Invoice_number='1001'

关于mysql - 嵌套 SQL 查询并验证未偿金额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41782377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com