导出和导入选定的行
问题描述:
我想从我的数据库导出特定数据并将其导入到另一个数据库表。大多数情况下,所有的数据都在一张表中,但其他表中还有其他数据。大多数其他表格只有一个所需数据的记录,但有些表格有多个必需的记录。 例如:导出和导入选定的行
Case
------------------
ID name status Sum
1 first 2 854
2 second 4 NULL
3 third 6 951
4 fourth 2 1430
Payments
----------------------------
CaseID Person payment
1 Peter 35
1 Robert 48
3 Oscar 630
4 Rob 85
3 Oscar 130
Documents
-----------------------------
CaseId DocTypeId RegNr
1 3 14335
1 4 43456
1 1 34533
2 5 23454
2 3 35532
我需要出口不具备状态的所有案件“6”,我需要他们的付款和文件,可能不止一个。我可以连接表,但那些具有多个所需记录的表将创建具有相同列数据的附加行。
With join I could get something like this
ID name status Sum CaseId Person payment CaseId DocTypeId RegNr
1 first 2 854 1 Peter 35 1 3 14335
1 first 2 854 1 Robert 48 1 4 43456
1 first 2 854 1 Peter 35 1 1 34533
在这里你可以看到像这样我会得到重复的数据。我怎样才能得到没有重复的数据?例如,一行中的所有数据?
我不想在数据库中导入重复数据,因为那样会很糟糕。 我该如何做到这一点?
我试着看看一些sql server possibilites,但找不到我需要的,所以我想我需要创建自己的脚本。
答
我假设你在你的连接表输出中得到了想要的结果,除了它给你重复。您可以轻松忽略重复项,并在输出表中只插入一行。
创建一个视图,它会给你重复的排名。
CREATE view View1 as(select *,ROW_NUMBER() OVER(partition by names, status, some, person, payment Order by id) as rn from Your_join_table)
后只需输入等级1列到你的输出表
select * into output_table from View1 where rn = 1
希望它能帮助!
你可以发布你正在使用的查询,也是你想要的结果吗?目前还不清楚你说的“some”和“most”。 –
案例ID 1是为彼得和罗伯特定义的 - 所以这是正确的 - 如果您加入案例ID - 您会收到两行......请发布您使用的加入查询。 – Tyron78
我还没有创建整个查询,只是想我如何能够完成我的需求,因为我现在无法看到如何做到这一点。 但是,对于创建重复项的案例ID 1,导入后会导致数据损坏。 – Rudolfs