SQL 서버에서 일부 테이블을 결합하려고합니다. 내가 얻고 자하는 것은 아래 그림과 같습니다. tes_A, tes_B, tes_C 및 tes_jumlah 테이블이 있다고 가정합니다. tes_jumlah는 tes_A, tes_B 및 tes_C 테이블의 조합입니다. jumlahA, jumlahB 및 jumlahC는 다른 테이블의 행 수를 세는 것으로부터 얻을 수 있습니다.SQL Server에서 조건이있는 다중 계수 함수
그림에 표시된 것처럼 tes_jumlah 테이블의 결과를 만드는 방법은 무엇입니까?
여기에는 jumlahA, jumlahB 및 jumlahC가 어디에서 가져온 코드가 포함되어 있습니다.
USE [SBR]
GO
/****** Object: Table [dbo].[tes_A] Script Date: 24/07/2016 22.22.41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tes_A](
[kddesa] [nchar](3) NULL,
[kdkec] [nchar](3) NULL,
[kdkab] [nchar](2) NULL,
[kdprop] [nchar](2) NULL,
[jumlahA] [bigint] NULL
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[tes_B] Script Date: 24/07/2016 22.22.41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tes_B](
[kddesa] [nchar](3) NULL,
[kdkec] [nchar](3) NULL,
[kdkab] [nchar](2) NULL,
[kdprop] [nchar](2) NULL,
[jumlahB] [bigint] NULL
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[tes_C] Script Date: 24/07/2016 22.22.41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tes_C](
[kddesa] [nchar](3) NULL,
[kdkec] [nchar](3) NULL,
[kdkab] [nchar](2) NULL,
[kdprop] [nchar](2) NULL,
[jumlahC] [bigint] NULL
) ON [PRIMARY]
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (NULL, NULL, N'71', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (NULL, N'020', N'72', N'21', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (NULL, N'061', N'06', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N' ', N' ', N'02', N'73', 112)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N' ', N' ', N'03', N'73', 28)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N' ', N' ', N'04', N'73', 55)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N' ', N' ', N'09', N'73', 6)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N' ', N' ', N'10', N'73', 18)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N' ', N' ', N'13', N'73', 7)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N' ', N' ', N'14', N'73', 7)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N' ', N' ', N'22', N'73', 4)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N' ', N' ', N'73', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N' ', N'020', N'13', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N' ', N'020', N'73', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N' ', N'030', N'09', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N' ', N'040', N'22', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N' ', N'050', N'04', N'73', 2)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N' ', N'060', N'09', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'001', N'010', N'03', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'001', N'020', N'03', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'001', N'030', N'10', N'73', 3)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'001', N'040', N'14', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'001', N'061', N'02', N'21', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'001', N'070', N'14', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'002', N'010', N'02', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'002', N'020', N'03', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'002', N'020', N'10', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'002', N'030', N'10', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'002', N'051', N'09', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'002', N'080', N'02', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'003', N' ', N'02', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'003', N'030', N'10', N'73', 2)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'003', N'031', N'04', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'003', N'060', N'14', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'004', N'011', N'10', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'004', N'020', N'02', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'004', N'021', N'16', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'004', N'030', N'04', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'004', N'050', N'10', N'73', 3)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'005', N'010', N'14', N'73', 3)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'005', N'020', N'10', N'73', 3)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'005', N'050', N'10', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'005', N'051', N'16', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'006', N'030', N'04', N'73', 2)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'006', N'040', N'14', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'006', N'070', N'14', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'007', N'010', N'14', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'007', N'030', N'04', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'007', N'040', N'14', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'007', N'041', N'09', N'73', 2)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'007', N'050', N'10', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'007', N'060', N'14', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'008', N'040', N'14', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'008', N'050', N'14', N'73', 4)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'009', N'010', N'02', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'009', N'030', N'10', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'009', N'031', N'03', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'009', N'041', N'16', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'009', N'060', N'14', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'010', N'010', N'14', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'011', N'011', N'03', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'013', N'030', N'04', N'73', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'016', N'070', N'05', N'21', 1)
GO
INSERT [dbo].[tes_B] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahB]) VALUES (N'017', N'040', N'09', N'73', 1)
GO
INSERT [dbo].[tes_C] ([kddesa], [kdkec], [kdkab], [kdprop], [jumlahC]) VALUES (N' ', N' ', N'02', N'73', 1)
GO
tes_jumlah 테이블 스크립트 :
delete sbr.dbo.tes_A
--entry
insert into sbr.dbo.tes_A
select kddesa,kdkec,kdkab,kdprop, COUNT(DISTINCT idestablishment) as jumlahA
FROM [db-sbr-20130724T193906220SS].dbo.commonthesis_es
where tahunberdiri = 2013
group by kddesa,kdkec,kdkab,kdprop
--exit
delete sbr.dbo.tes_B
insert into sbr.dbo.tes_B
select y.kddesa,y.kdkec,y.kdkab,y.kdprop, COUNT(DISTINCT y.idestablishment) as jumlahB
FROM [db-sbr-20120724T193741793SS].dbo.commonthesis_es as y
INNER JOIN [db-sbr-20130724T193906220SS].dbo.commonthesis_es as y1
ON y1.idestablishment = y.idestablishment
--join [db-sbr-20120724T193741793SS].dbo.m_desa as d on d.kddesa=y1.kddesa and d.kddesa=y.kddesa
where y.statusperusahaan=1 and y1.statusperusahaan=4
group by y.kddesa,y.kdkec,y.kdkab,y.kdprop
--jumlah akhir tahun
delete sbr.dbo.tes_C
insert into sbr.dbo.tes_C
Select kddesa,kdkec,kdkab,kdprop,count (distinct idestablishment) as jumlahC
from [db-sbr-20130724T193906220SS].dbo.commonthesis_es where statusperusahaan=2
or statusperusahaan=3 or statusperusahaan=5
group by kddesa,kdkec,kdkab,kdprop
는 그리고이 테이블 스크립트와 샘플 데이터입니다 내가 이것을 시도
USE [SBR]
GO
/****** Object: Table [dbo].[tes_jumlah] Script Date: 24/07/2016 22.41.50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tes_jumlah](
[kddesa] [nchar](3) NULL,
[kdkec] [nchar](3) NULL,
[kdkab] [nchar](2) NULL,
[kdprop] [nchar](2) NULL,
[jumlahA] [bigint] NULL,
[jumlahB] [bigint] NULL,
[jumlahC] [bigint] NULL
) ON [PRIMARY]
GO
하지만 내가 원하는 것을 정확히되지 않습니다.
insert into sbr.dbo.tes_jumlah (kddesa,kdkec,kdkab,kdprop,jumlahA)
select * from sbr.dbo.tes_A
insert into sbr.dbo.tes_jumlah (kddesa,kdkec,kdkab,kdprop,jumlahB)
select * from sbr.dbo.tes_B
insert into sbr.dbo.tes_jumlah (kddesa,kdkec,kdkab,kdprop,jumlahC)
select * from sbr.dbo.tes_C
또한 시도했지만 구문이 올바르지 않은 것으로 보입니다.
insert into sbr.dbo.tes_jumlah
Select a.kddesa,a.kdkec,a.kdkab,a.kdprop,a.jumlahA,b.jumlahB,c.jumlahC
from sbr.dbo.tes_A a
full join sbr.dbo.tes_B as b
full join sbr.dbo.tes_C as c
group by a.kddesa,a.kdkec,a.kdkab,a.kdprop
내 영어가 좋지 않아서 고맙습니다. Ilustration입니다 : 내가 같은 것을 가져올 : FULL OUTER와
타리, 여기를보고 프레임 질문에 시도하십시오 jumlahN 열을 얻기 위해 테이블을 조인보다 이것을 바탕으로 놀랍도록 빠른 답변을 얻을 수 있습니다. 현재 설명은별로 도움이되지 않습니다 .https : //spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public -forum/ – TheGameiswar
@ TheGameiswar, 귀하의 조언에 감사드립니다. 즉시 질문을 수정하겠습니다. – Kurniawantaari
@ TheGameiswar, 스크립트 테이블과 예제 데이터를 포함했습니다. – Kurniawantaari