programing

선택 쿼리 MySQL, Bego에서 특정 ID의 합을 선택하는 방법

lastcode 2023. 9. 24. 12:54
반응형

선택 쿼리 MySQL, Bego에서 특정 ID의 합을 선택하는 방법

저는 다음과 같은 결과를 얻고 싶습니다.

result 
-------------------------------------------------------
id | uuid | user_id |created_date |    amount    | name 
-------------------------------------------------------
1  | ABC  |    1    |   2019/5/1  |      5       | xa
2  | PQR  |    2    |   2019/5/5  |      150     | xb

사용하려는 쿼리

SELECT(SELECT SUM(paid_amount) WHERE ID = t1.**HERE**) AS sub1,
(t1.amount - sub1) AS sub2
FROM invoice t1 CROSS JOIN
invoice_paid t2;

내 DB의 테이블 구조

table invoice_paid        
------------------------------------
id | uuid | paid_date | paid_amount
------------------------------------
1  | ABC  | 2019/5/1  | 15
2  | ABC  | 2019/5/5  | 80 

table invoice
-------------------------------------------------------
id | uuid | user_id |created_date |    amount    | name 
-------------------------------------------------------
1  | ABC  |    1    |   2019/5/1  |      100     | xa
2  | PQR  |    2    |   2019/5/5  |      150     | xb

id = 1인 경우와 같이 sum 1 조건만 사용할 수 있는데 select 쿼리에서 이 쿼리를 조인 쿼리와 결합하려면 어떻게 해야 합니까?저는 비고(골랑), 마리아DB를 사용합니다.

이 쿼리를 사용할 수 있습니다.IT가 가입합니다.invoice의 도출된 표에 표SUM인보이스 당 지불한 금액의 s.invoice_paid, 송장 금액에서 총계를 빼서 미결제 금액을 구합니다.

SELECT i.id, i.uuid, i.user_id, i.created_date, i.amount - COALESCE(p.amount, 0) AS amount, i.name
FROM invoice i
LEFT JOIN (SELECT uuid, SUM(paid_amount) AS amount
           FROM invoice_paid
           GROUP BY uuid) p ON p.uuid = i.uuid
ORDER BY i.id

출력:

id  uuid    user_id created_date        name    amount
1   ABC     1       2019-05-01 00:00:00 xa      5
2   PQR     2       2019-05-05 00:00:00 xb      150

dbfiddle 데모

언급URL : https://stackoverflow.com/questions/56144277/how-to-select-sum-of-specific-id-in-select-query-mysql-beego

반응형