Tôi muốn lấy tổng của một số cột từ 2 bảng khác nhau (các bảng này có cùng cấu trúc).Lấy tổng của một số cột từ hai bảng
Nếu tôi chỉ xem xét một bảng, tôi sẽ viết loại truy vấn:
SELECT MONTH_REF, SUM(amount1), SUM(amount2)
FROM T_FOO
WHERE seller = XXX
GROUP BY MONTH_REF;
Tuy nhiên, tôi muốn cũng làm việc với các dữ liệu từ T_BAR bảng, và sau đó có một truy vấn select
trả lại các cột sau:
- MONTH_REF
- SUM (T_FOO.amount1) + SUM (T_BAR.amount1)
- SUM (T_FOO.amount2) + SUM (T_BAR.amount2)
mọi thứ được nhóm theo giá trị MONTH_REF
.
Lưu ý rằng một bản ghi cho một MONTH_REF
đã cho có thể được tìm thấy trong một bảng nhưng không có trong bảng khác. Trong trường hợp này, tôi muốn nhận tổng của T_FOO.amount1 + 0
(hoặc 0 + T_BAR.amount1
).
Làm cách nào để tôi có thể viết truy vấn SQL của mình để nhận thông tin này?
Để biết thông tin, cơ sở dữ liệu của tôi là Oracle 10g.
Cuối cùng tôi thích giải pháp của bạn (đầu tiên) vì nó là rõ ràng hơn so với các giải pháp Lieven ... – romaintaz
Đầu tiên là nhiều hơn hiệu quả bởi vì bạn đang giảm số hàng sớm hơn khi bạn di chuyển mệnh đề 'WHERE' bên ngoài phần tử' SELECT'. – JohnB
Cảm ơn tôi đã sử dụng thứ hai. –