Pobieram dane z tabel 3 (data i qty), niektóre dane mogą się nakładać, ale nie są pewne, które tabele. Na przykład kilka dni mogą się pokrywać w tabele t1 i t2, ale nie w t3, lub T2 i T3, ale nie w t1 lub T1 i T3, ale nie w t2Sql Dołącz do częściowo zachodzących na siebie danych
Gdybym wykonać pełnego złączenia I skończyć z partii wartości zerowych i trzech różnych kolumn daty.
Jak mogę uzyskać dane do sformatowania: date,qty1, qty2, gty3
gdzie [date]
zawierałoby wszystkie dni z 3 tabel? Zero zastąpi wszystkie wartości 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
Ciekawy mieszać COALESCE i IsNull ... – ErikE
@ErikE - True. Domyślam się 'ISNULL', chyba że więcej niż 2 parametry lub inny powód do preferowania' COALESCE'. –
to działa, dziękuję – witpo