【发布时间】:2019-02-25 10:21:06
【问题描述】:
我有三个声明的表:
- Table_1(默认)与子 Table_2 和 Table_3 的组号相同
- 而 Table_2 和 Table_3 的日期相同
我很难将两个子表加入到 T1 中而不会在第一次加入后丢失数据。在加入 T2 之后,T1 应该仍然有它的初始数据,而不是 NULL。
我试过了:
SELECT *
FROM (
SELECT DISTINCT * from @GRP_TABLE as T1
FULL OUTER JOIN
(SELECT * FROM @PASSEDBOOKINGS) AS T2
on T1.T1_GROUP_NUMBER = T2.T2_GROUP_NUMBER
FULL OUTER JOIN
(SELECT * FROM @FAILBOOKINGS)AS T3
ON T3.T3_GROUP_NUMBER = T1.T1_GROUP_NUMBER
and T3.T3_DATE = T2.T2_DATE
)AS JOINS
WHERE JOINS.T3_DATE = CAST(GETDATE() AS DATE)
OR JOINS.T2_DATE = CAST(GETDATE() AS DATE)
@GRP_TABLE 作为 T1:
|-------|------------------|
|T1_LINE| T1_GROUP_NUMBER |
|-------|------------------|
| A1 | A110 |
|-------|------------------|
| A1 | A120 |
|-------|------------------|
|A1 |A130 |
|-------|------------------|
|A1 |A140 |
|-------|------------------|
|A1 |A150 |
|-------|------------------|
@PASSEDBOOKING 作为 T2:
|---------------|-----------|----------|
|T2_GROUP_NUMBER| T2_COUNTS | T2_DATE |
|---------------|-----------|----------|
| A110 | 2 |2019-02-25|
|---------------|-----------|----------|
| A120 | 2 |2019-02-25|
|---------------|-----------|----------|
|A130 |2 |2019-02-25|
|---------------|-----------|----------|
@FAILEDBOOKINGS 作为 T3:
|---------------|-----------|----------|
|T3_GROUP_NUMBER| T3_COUNTS | T3_DATE |
|---------------|-----------|----------|
| A140 | 1 |2019-02-25|
|---------------|-----------|----------|
| A150 | 1 |2019-02-25|
|---------------|-----------|----------|
这会导致:
|-------|------------------|------------------|----------|-----------------|-------------|------------------|------------------|
|T1_LINE| T1_GROUP_NUMBER | T2_GROUP_NUMBER |T2_COUNTS | T3_GROUP_NUMBER |T3_COUNTS | T2_DATE | T3_DATE |
|-------|------------------|------------------|----------|-----------------|-------------|------------------|------------------|
| NULL | NULL | NULL | NULL | A140 | 1 | NULL | 2019-02-25 |
|-------|------------------|------------------|----------|-----------------|-------------|------------------|------------------|
| NULL | NULL | NULL | NULL |A150 | 1 | NULL | 2019-02-25 |
|-------|------------------|------------------|----------|-----------------|-------------|------------------|------------------|
|A1 |A110 | A110 | 2 | NULL | NULL | 2019-02-25 | NULL |
|-------|------------------|------------------|----------|-----------------|-------------|------------------|------------------|
|A1 |A120 | A120 | 2 | NULL | NULL | 2019-02-25 | NULL |
|-------|------------------|------------------|----------|-----------------|-------------|------------------|------------------|
|A1 |A130 | A130 | 2 | NULL | NULL | 2019-02-25 | NULL |
|-------|------------------|------------------|----------|-----------------|-------------|------------------|------------------|
但我期待这些结果:
|-------|------------------|------------------|----------|-----------------|-------------|------------------|------------------|
|T1_LINE| T1_GROUP_NUMBER | T2_GROUP_NUMBER |T2_COUNTS | T3_GROUP_NUMBER |T3_COUNTS | T2_DATE | T3_DATE |
|-------|------------------|------------------|----------|-----------------|-------------|------------------|------------------|
| A1 | A140 | NULL | NULL | A140 | 1 | NULL | 2019-02-25 |
|-------|------------------|------------------|----------|-----------------|-------------|------------------|------------------|
| A1 | A150 | NULL | NULL |A150 | 1 | NULL | 2019-02-25 |
|-------|------------------|------------------|----------|-----------------|-------------|------------------|------------------|
|A1 |A110 | A110 | 2 | NULL | NULL | 2019-02-25 | NULL |
|-------|------------------|------------------|----------|-----------------|-------------|------------------|------------------|
|A1 |A120 | A120 | 2 | NULL | NULL | 2019-02-25 | NULL |
|-------|------------------|------------------|----------|-----------------|-------------|------------------|------------------|
|A1 |A130 | A130 | 2 | NULL | NULL | 2019-02-25 | NULL |
|-------|------------------|------------------|----------|-----------------|-------------|------------------|------------------|
【问题讨论】:
-
你能发布一些示例数据吗?您得到的结果很有帮助,但它们并没有向我们展示您的数据在之前您的查询之后是什么样子,只有在之后。确保样本数据代表您在上面提供的数据。谢谢。
-
@Larnu 谢谢,查看更新。
-
我看到你所有的 sql 都在
@-tables:也许你可以把你的例子放在a rexter wall 上? -
不幸被公司屏蔽 :( @AlexYu
标签: sql sql-server