Sql server SQL Server-连接查询
行计数的结果是Sql server SQL Server-连接查询,sql-server,Sql Server,行计数的结果是 Select No, A, B, C into #temp1 from Table1 Where month = 'Jan' Select No, D, E, F into #temp2 from Table2 Where month = 'Jan' Select No, G, H, I into #temp3 from Table3 Where month = 'Jan' *请注意,行计数结果将因所选月份而异 我想将三个表的结果合并为一个,输出如下: #temp1 = 0 #
Select No, A, B, C into #temp1 from Table1 Where month = 'Jan'
Select No, D, E, F into #temp2 from Table2 Where month = 'Jan'
Select No, G, H, I into #temp3 from Table3 Where month = 'Jan'
*请注意,行计数结果将因所选月份而异
我想将三个表的结果合并为一个,输出如下:
#temp1 = 0
#temp2 = 0
#temp3 = 2
我试过:
No | A | B | C | D | E | F | G | H | I
----------------------------------------
但我知道查询是错误的,因为表#temp1中没有结果,所以不会有输出
请帮忙。谢谢如果您想显示所有结果,您的查询可以如下所示,但如果您的目的不同,请进一步解释
Select t1.No, t1.A, t1.B, t1.C, t2.D, t2.E, t2.F, t3.G, t3.H, t3.I
From #temp1 t1
Left Join #temp2 t2 on t1.No = t2.No
Left Join #temp3 t3 on t1.No = t3.No
您可以为您的案例使用完全外部连接。像这样试试
Select t1.No, t1.A, t1.B, t1.C, t2.D, t2.E, t2.F, t3.G, t3.H, t3.I
From #temp1 t1, #temp2 t2 , #temp3 t3
假设
No
是唯一的,则需要在所有三个对象之间进行完整的外部联接,或者在所有三个对象之间使用聚合函数进行UNION all
together@Nick.McDermaid-是的,谢谢大家。我现在可以得到我想要的结果,但是如果你能解释更多关于完全外连接的内容。我已经尝试了完全外部连接,但是如何才能让输出显示No,因为我将其编码为t1。No,但结果将是t3。No。输出将在No字段上显示NULL。此处的No
列将为NULL
。OP提到#temp1
有0行。这可能是选择合并(t1.No,t2.No,t3.No),t1.a,…
@迈克尔:是的,你是对的。我编辑了select语句。Thanks@Dia当前位置请告诉我们您想做什么achieve@NewUser是的,这就是我要找的。选择合并(t1.No、t2.No、t3.No)。谢谢大家的帮助和快速反应,我想展示所有结果。我尝试了您的查询,但结果是零/无输出,这是错误的,因为我在t3中有两个数据display@Dia例如我看到你的问题得到了回答。如果你需要更多的帮助,请写信。
CREATE TABLE #temp1
(
no INT,
A VARCHAR(10),
B VARCHAR(10),
C VARCHAR(10),
MONTH VARCHAR(10)
)
CREATE TABLE #temp2
(
no INT,
D VARCHAR(10),
E VARCHAR(10),
F VARCHAR(10),
MONTH VARCHAR(10)
)
CREATE TABLE #temp3
(
no INT,
G VARCHAR(10),
H VARCHAR(10),
I VARCHAR(10),
MONTH VARCHAR(10)
)
INSERT INTO #temp3
VALUES (1,
'G1',
'H1',
'I1',
'Jan'),
(2,
'G2',
'H2',
'I2',
'Jan')
SELECT coalesce(t1.No,t2.no,t3.no) as No,
t1.A,
t1.B,
t1.C,
t2.D,
t2.E,
t2.F,
t3.G,
t3.H,
t3.I
FROM #temp1 t1
FULL OUTER JOIN #temp2 t2
ON t1.No = t2.No
FULL OUTER JOIN #temp3 t3
ON t1.No = t3.No