T-SQL查询过程-插入
T-SQL query procedure-insert
我想知道你们中是否有人能帮助我。我正在尝试遍历 table 1(它具有重复的工厂代码值)并基于唯一的工厂代码,为另外两个 table 创建一个新记录。对于每个唯一的 Plant 代码,我想在其他两个 table 中创建一个新行,并且关于非唯一的 PtypeID I link 所有插入的 PTypeID 中的任何一个,我选择哪个都无关紧要其余字段,如名称等。我想自己设置这些字段,我只是坚持如何基于循环某个 table 并添加到另一个来插入的逻辑。所以这是数据:
Table 1
PlantCode PlantID PTypeID
MEX 1 10
USA 2 11
USA 2 12
AUS 3 13
CHL 4 14
Table 2
PTypeID PtypeName PRID
123 Supplier 1
23 General 2
45 Customer 3
90 Broker 4
90 Broker 5
Table 3
PCreatedDate PRID PRName
2005-03-21 14:44:27.157 1 Classification
2005-03-29 00:00:00.000 2 Follow Up
2005-04-13 09:27:17.720 3 Step 1
2005-04-13 10:31:37.680 4 Step 2
2005-04-13 10:32:17.663 5 General Process
如有任何帮助,我们将不胜感激
我不清楚 Table 1 和其他两个中的任何一个之间有什么关系,所以这会有点笼统。
首先,有两个选项,都需要一个 select 语句来从表 1 中获取 PlantCode 的唯一值,以及与之关联的 PTypeId 之一,所以让我们这样做:
select PlantCode, min(PTypeId)
from table1
group by PlantCode;
这会获取与 PlantCode 关联的最低值 PTypeId。如果需要,您可以使用 max(PTypeId) 来获取最高值:for 'USA' min 将为您提供 11,max 将为您提供 12.
select编辑该数据后,您可以编写一些代码(C#、C++、java 等)逐行读取结果并将新数据插入 table2 和 table3。我不打算展示它,但我会展示如何使用纯 SQL.
insert into table2 (PTypeId, PTypeName, PRID)
select PTypeId, 'YourChoiceOfName', 24 -- set PRID to 24 for all
from
(
select PlantCode, min(PTypeId) as PTypeId
from table1
group by PlantCode
) x;
然后对表 3 使用类似的 insert.... select...
。
希望对您有所帮助。
我想知道你们中是否有人能帮助我。我正在尝试遍历 table 1(它具有重复的工厂代码值)并基于唯一的工厂代码,为另外两个 table 创建一个新记录。对于每个唯一的 Plant 代码,我想在其他两个 table 中创建一个新行,并且关于非唯一的 PtypeID I link 所有插入的 PTypeID 中的任何一个,我选择哪个都无关紧要其余字段,如名称等。我想自己设置这些字段,我只是坚持如何基于循环某个 table 并添加到另一个来插入的逻辑。所以这是数据:
Table 1
PlantCode PlantID PTypeID
MEX 1 10
USA 2 11
USA 2 12
AUS 3 13
CHL 4 14
Table 2
PTypeID PtypeName PRID
123 Supplier 1
23 General 2
45 Customer 3
90 Broker 4
90 Broker 5
Table 3
PCreatedDate PRID PRName
2005-03-21 14:44:27.157 1 Classification
2005-03-29 00:00:00.000 2 Follow Up
2005-04-13 09:27:17.720 3 Step 1
2005-04-13 10:31:37.680 4 Step 2
2005-04-13 10:32:17.663 5 General Process
如有任何帮助,我们将不胜感激
我不清楚 Table 1 和其他两个中的任何一个之间有什么关系,所以这会有点笼统。
首先,有两个选项,都需要一个 select 语句来从表 1 中获取 PlantCode 的唯一值,以及与之关联的 PTypeId 之一,所以让我们这样做:
select PlantCode, min(PTypeId)
from table1
group by PlantCode;
这会获取与 PlantCode 关联的最低值 PTypeId。如果需要,您可以使用 max(PTypeId) 来获取最高值:for 'USA' min 将为您提供 11,max 将为您提供 12.
select编辑该数据后,您可以编写一些代码(C#、C++、java 等)逐行读取结果并将新数据插入 table2 和 table3。我不打算展示它,但我会展示如何使用纯 SQL.
insert into table2 (PTypeId, PTypeName, PRID)
select PTypeId, 'YourChoiceOfName', 24 -- set PRID to 24 for all
from
(
select PlantCode, min(PTypeId) as PTypeId
from table1
group by PlantCode
) x;
然后对表 3 使用类似的 insert.... select...
。
希望对您有所帮助。