我想知道你们中是否有人能够帮助我。我试图循环遍历表1(具有工厂代码的重复值)并基于唯一的工厂代码,为另外两个表创建新记录。对于每个唯一的Plant代码,我想在其他两个表中创建一个新行,并且关于非唯一的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
任何帮助都将非常感谢
答案 0 :(得分:1)
我不清楚表1与其他两者之间的关系,所以这有点笼统。
首先,有两个选项,都需要一个select语句来从table1中获取PlantCode的唯一值,以及与之关联的一个PTypeId,所以让我们这样做:
select PlantCode, min(PTypeId)
from table1
group by PlantCode;
这将获得与PlantCode关联的最低值的PTypeId。您可以使用max(PTypeId)代替它,如果您需要,它会获得最高值:因为'USA'分钟会给你11分,最大分数会给你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...
。
希望有所帮助。