第一查询:
SELECT TOP 100 PERCENT bansc.dbo.jigou.jigouID AS 编码,
bansc.dbo.jigou.jigou AS 机构名, SUM(WIS.T_HouseAccount.SumPeople)
AS 人口合计, SUM(WIS.T_HouseAccount.MinoritySumpeople) AS 少数民族,
SUM(WIS.T_HouseAccount.Inflow) AS 流入, SUM(WIS.T_HouseAccount.MinorityInflow)
AS 流入民族, SUM(WIS.T_HouseAccount.Outflow) AS 流出,
SUM(WIS.T_HouseAccount.MinorityOutflow) AS 流出民族, COUNT(*) AS 户合计
FROM bansc.dbo.jigou RIGHT OUTER JOIN
WIS.T_HouseAccount ON
bansc.dbo.jigou.jigouID = SUBSTRING(WIS.T_HouseAccount.HouseAccountID, 0,
15) OR
bansc.dbo.jigou.jigouID = SUBSTRING(WIS.T_HouseAccount.HouseAccountID, 0,
13) OR
bansc.dbo.jigou.jigouID = SUBSTRING(WIS.T_HouseAccount.HouseAccountID, 0, 10)
GROUP BY bansc.dbo.jigou.jigouID, bansc.dbo.jigou.jigou,
WIS.T_HouseAccount.TrashFlag
HAVING (WIS.T_HouseAccount.TrashFlag <> 1)
ORDER BY bansc.dbo.jigou.jigouID
第二个查询:
SELECT TOP 100 PERCENT bansc.dbo.jigou.jigouID AS 编码,
bansc.dbo.jigou.jigou AS 机构名, COUNT(*) AS 户
FROM bansc.dbo.jigou RIGHT OUTER JOIN
(SELECT *
FROM (SELECT WIS.T_WomanAccount.HouseAccountID AS 户编,
WIS.T_WomanAccount.WomanID AS 育编,
WIS.T_WomanAccount.Name AS 女名,
WIS.T_WomanAccount.Birthday AS 女出生,
WIS.T_Nation.Name AS 女民族, WIS.T_Marriage.Name AS 男名,
WIS.T_Marriage.Birthday AS 男出生, T_Nation_1.Name AS 男民族,
WIS.T_InhabitancyKind.Name AS 居住性质,
WIS.T_WomanAccount.HouseAddress AS 女户籍地,
WIS.T_HouseAccount.SumPeople AS 人口,
WIS.T_HouseAccount.MinoritySumpeople AS 少民,
WIS.T_HouseAccount.Inflow AS 流入,
WIS.T_MarriageStatus.Name AS 女婚,
WIS.T_ContraceptStatus.Name AS 措施,
WIS.T_Contracept.BeginDate AS 措施日期,
WIS.T_WomanAccount.Inhabitation AS 女居住地
FROM WIS.T_WomanAccount LEFT OUTER JOIN
WIS.T_Marriage ON WIS.T_Marriage.TrashFlag = 0 AND
SUBSTRING(WIS.T_WomanAccount.MarriageStatusID, 1, 1) = '2' AND
WIS.T_WomanAccount.WomanID = WIS.T_Marriage.WomanID AND
WIS.T_WomanAccount.MarryDate = WIS.T_Marriage.MarriageDate LEFT
OUTER JOIN
WIS.T_Contracept ON
WIS.T_WomanAccount.WomanID = WIS.T_Contracept.WomanID AND
WIS.T_Contracept.ContraceptID =
(SELECT MAX(ContraceptID) AS ContraceptID
FROM WIS.T_Contracept
WHERE TrashFlag <> 1 AND
WomanID = WIS.T_WomanAccount.WomanID)
LEFT OUTER JOIN
WIS.T_HouseAccount ON
WIS.T_WomanAccount.HouseAccountID = WIS.T_HouseAccount.HouseAccountID
LEFT OUTER JOIN
WIS.T_Nation ON
WIS.T_WomanAccount.NationID = WIS.T_Nation.NationID LEFT OUTER
JOIN
WIS.T_MarriageStatus ON
WIS.T_WomanAccount.MarriageStatusID = WIS.T_MarriageStatus.MarriageStatusID
LEFT OUTER JOIN
WIS.T_InhabitancyKind ON
WIS.T_WomanAccount.InhabitancyKindID = WIS.T_InhabitancyKind.InhabitancyKindID
LEFT OUTER JOIN
WIS.T_ContraceptStatus ON
WIS.T_Contracept.ContraceptStatusID = WIS.T_ContraceptStatus.ContraceptStatusID
LEFT OUTER JOIN
WIS.T_Nation T_Nation_1 ON
WIS.T_Marriage.NationID = T_Nation_1.NationID
WHERE (WIS.T_WomanAccount.TrashFlag <> 1) AND
(WIS.T_Marriage.TrashFlag <> 1 OR
WIS.T_Marriage.TrashFlag IS NULL) AND
(WIS.T_Contracept.TrashFlag <> 1 OR
WIS.T_Contracept.TrashFlag IS NULL) AND
(WIS.T_HouseAccount.TrashFlag <> 1 OR
WIS.T_HouseAccount.TrashFlag IS NULL) AND
(WIS.T_MarriageStatus.Name <> '未婚') AND
(WIS.T_InhabitancyKind.Name LIKE '%流入%')) DERIVEDTBL)
DERIVEDTBL ON bansc.dbo.jigou.jigouID = SUBSTRING(DERIVEDTBL.户编, 0, 15) OR
bansc.dbo.jigou.jigouID = SUBSTRING(DERIVEDTBL.户编, 0, 13) OR
bansc.dbo.jigou.jigouID = SUBSTRING(DERIVEDTBL.户编, 0, 10)
GROUP BY bansc.dbo.jigou.jigouID, bansc.dbo.jigou.jigou
ORDER BY bansc.dbo.jigou.jigouID
[Quote=引用 14 楼 dawugui 的回复:]
select 机构 , 人口 = sum(人口) , 已婚 = sum(已婚) from
(
select * , 已婚 = 0 from tb1
union all
select 机构,人口 = 0 , 已婚 from tb2
) t
group by 机构
[Quote=引用 8 楼 dawugui 的回复:]
SQL codeselect 机构 , 人口 = sum(人口) , 已婚 = sum(已婚) from
(
select * from tb1
union all
select * from tb2
) t
group by 机构
[/Quote]