【发布时间】:2017-12-12 10:16:26
【问题描述】:
我有两个选择查询,每个查询中的列数不同,条件不同。我想将从两个选择查询收集的数据添加到一个表中。我已经看到了执行“UNION”的方法,但在这种情况下,两个查询中的列数必须相同,如何将两个查询中的数据添加到单个表中。我的查询如下:
Select
Village_ID,
Village_Name,
RSP_ID,
Other_Loan_Source,
Informal_Money_Lender_Loans
from(
Select DISTINCT SETTLEMENT_ID as Village_ID,
SETTLEMENT_NAME as Village_Name,
RSP_ID,
(SELECT COUNT(*) FROM PscData where SETTLEMENT_ID = T.SETTLEMENT_ID
AND TAKEN_LOAN = 6 )as Other_Loan_Source,
(SELECT COUNT(*) FROM PscData where SETTLEMENT_ID = T.SETTLEMENT_ID
AND TAKEN_LOAN = 5 )as Informal_Money_Lender_Loans
FROM PscData as T
)tmp
第二个查询是这样的:
SELECT
SUM(CASE WHEN t2.SEX = 1
THEN 1 ELSE 0 END) AS Total_Males,
SUM(CASE WHEN t2.SEX = 2
THEN 1 ELSE 0 END) AS Total_Females,
SUM(CASE WHEN t2.MARITAL_STATUS = 1
THEN 1 ELSE 0 END) AS Total_Married,
t1.SETTLEMENT_ID
FROM PScData t1
INNER JOIN PscMemberData t2
ON t2._PARENT_AURI = t1.URI
GROUP BY
t1.SETTLEMENT_ID
HAVING COUNT(*) > 1;
如何将这些结果合并到一张表中。
【问题讨论】:
-
你的表结构是什么?
-
我不明白您为什么要使用联合,因为您的列完全不同。为什么不加入 SETTLEMENT_ID = Village_ID 上的两个结果。这样,您将获得一个包含您需要的所有信息的表格。
标签: sql sql-server