我想知道你们中的任何人是否能够帮助我。我试图遍历表1(具有重复的工厂代码值),并基于唯一的工厂代码为其他两个表创建新记录。对于每个唯一的工厂代码,我想在其他两个表中创建一个新行,对于非唯一的PtypeID,我可以为所有插入内容链接任意一个PTypeID,无论选择哪种类型以及其余字段(例如名称等)都无关紧要。我想自己设置这些,我只是停留在如何基于循环访问某个表并添加到另一个表的逻辑上。所以这是数据:
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
任何帮助将不胜感激
最佳答案
我不清楚表1和其他两个表之间是什么关系,所以这有点笼统。
首先,有两个选项,并且都需要有一条select语句才能从table1中获取PlantCode的唯一值,以及与之关联的PTypeId之一,所以让我们这样做:
select PlantCode, min(PTypeId)
from table1
group by PlantCode;
这将获得与PlantCode关联的最低值的PTypeId。如果需要,可以使用max(PTypeId)代替它来获取最大值:对于'USA',min将给您11,max将给您12。
选择了这些数据后,您可以编写一些代码(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...
。希望能有所帮助。