Tôi truy xuất biểu mẫu dữ liệu 3 bảng (ngày và qty), một số dữ liệu có thể trùng lặp nhưng không chắc chắn bảng nào. Ví dụ một số ngày có thể chồng chéo trong bảng t1 và t2 nhưng không phải trong t3, hoặc t2 và t3 nhưng không phải trong t1 hoặc t1 và t3 nhưng không phải trong t2Sql Tham gia dữ liệu chồng chéo một phần
Nếu tôi thực hiện một đầy đủ tham gia tôi kết thúc với rất nhiều của null và ba cột ngày khác nhau.
Làm cách nào để lấy dữ liệu định dạng: date,qty1, qty2, gty3
trong đó [date]
sẽ chứa tất cả các ngày tạo thành 3 bảng? Zero sẽ thay thế tất cả các giá trị null
07/02/2012 || 2 || 0 || 7
CREATE TABLE t1 (
[date] [nvarchar](10)
,qtyt1 [int]
)
CREATE TABLE t2 (
[date] [nvarchar](10)
,qtyt2 [int]
)
CREATE TABLE t3 (
[date] [nvarchar](10)
,qtyt3 [int]
)
insert into t1 values ('05/02/2012', 2)
insert into t1 values ('07/02/2012', 3)
insert into t2 values ('06/02/2012', 4)
insert into t2 values ('08/02/2012', 5)
insert into t3 values ('07/02/2012', 7)
insert into t3 values ('08/02/2012', 11)
select * from t1
full join t2 on t1.date = t2.date
full join t3 on t2.date = t3.date
Tò mò để trộn liên hiệp và ISNULL ... – ErikE
@ErikE - True. Tôi mặc định là 'ISNULL' trừ khi có nhiều hơn 2 tham số hoặc một số lý do khác để thích' COALESCE'. –
nó hoạt động, cảm ơn bạn – witpo