Đối với một kho dữ liệu SQL Server, tôi cần phải khớp 2 bảng có chứa cùng một dữ liệu.Việc hợp nhất các bảng với dữ liệu trùng lặp
Có rõ ràng hơn để nó hơn này, vì vậy xác định lại nhiệm vụ không phải là một lựa chọn :-)
Given 2 bảng A và B
Bảng A:
id | fid | type
-------------------
100 | 1 | cookies
110 | 1 | muffins
120 | 1 | muffins
Bảng B:
id | fid | type
--------------------
a220 | 1 | muffins
b220 | 1 | muffins
Khi hợp nhất (áp dụng bí mật CNTT tại đây - SQL), nó sẽ trở thành
A_B:
A_id | B_id | fid | type
---------------------------
100 | NULL | 1 | cookies
110 | a220 | 1 | muffins
120 | b220 | 1 | muffins
Bất kỳ giải pháp sử dụng T-SQL được ưa thích, hiệu suất không phải là một vấn đề. Nếu SSIS là một lựa chọn đơn giản hơn, tôi có thể sống với nó.
Đây là kịch bản để tạo môi trường thử nghiệm để bạn có thể chơi cùng.
/****** Object: Table [dbo].[B] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[B](
[id] [varchar](10) NULL,
[fid] [int] NULL,
[type] [varchar](50) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
INSERT [dbo].[B] ([id], [fid], [type]) VALUES (N'a220', 1, N'muffins')
INSERT [dbo].[B] ([id], [fid], [type]) VALUES (N'b220', 1, N'muffins')
/****** Object: Table [dbo].[A] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[A](
[id] [varchar](10) NULL,
[fid] [int] NULL,
[type] [varchar](50) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
INSERT [dbo].[A] ([id], [fid], [type]) VALUES (N'100', 1, N'cookies')
INSERT [dbo].[A] ([id], [fid], [type]) VALUES (N'110', 1, N'muffins')
INSERT [dbo].[A] ([id], [fid], [type]) VALUES (N'120', 1, N'muffins')
Tại sao a.110 trận đấu để A220? – podiluska
Bạn có tham gia các bảng trên trường 'loại' không? – Gidil