2013-09-30 17 views
0

表1 - 该表被完全从XLSX文件填充...将数据传输到另一个,一些关系列

enter image description here

表2和3 - 含有1-对决赛桌中的几列进行1次引用。

enter image description here

表3 - 在上,我试图让填充前三表....

enter image description here

正如你可以看到,该表是明智的,有没有爱因斯坦方程或转换正在进行。以下是我已经尝试过的代码,不成功:

INSERT INTO att_oem_orders SELECT NULL, ost.om_or_po, (SELECT j.job_id FROM jobs j WHERE j.project_number = project_no), NULL, (SELECT ao.id FROM att_oem WHERE ao.item_no = item_no), ost.po_number, (SELECT ol.id FROM order_lsc WHERE STATUS = ol.line_status_code), ost.ordered_date, ost.shipment_date, NULL, NULL, ost.item_qty, NULL, NULL, NULL, NULL, ost.shipping_to, ost.tracking_number, ost.carrier) FROM oem_temp_sync WHERE ost.item_qty > 0 
+0

你是否尝试明确列出你想要插入到att_oem_orders的列? (我假设Select语句有效) – AgRizzo

+0

'SELECT'语句很疯狂。它要求提供表名,其中一些字段是多余的,并且在几个子查询中给我“子查询返回多于一行”。也许我需要以编程方式做这件事,因为SQL正在把我的大脑变成酱汁。 – DevlshOne

回答

1

尝试限制可能值的数量使用FIRST()像这样投入到一个领域:

INSERT INTO att_oem_orders SELECT 
    NULL, 
    ost.om_or_po, 
    (SELECT FIRST(j.job_id) FROM jobs j WHERE j.project_number = project_no), 
    NULL, 
    (SELECT FIRST(ao.id) FROM att_oem WHERE ao.item_no = item_no), 
    ost.po_number, 
    (SELECT FIRST(ol.id) FROM order_lsc WHERE STATUS = ol.line_status_code), 
    ost.ordered_date, 
    ost.shipment_date, 
    NULL, 
    NULL, 
    ost.item_qty, 
    NULL, 
    NULL, 
    NULL, 
    NULL, 
    ost.shipping_to, 
    ost.tracking_number, 
    ost.carrier 
FROM oem_temp_sync WHERE ost.item_qty > 0 

也似乎有一个额外的)就在从前

0

随着每个人的一点点帮助,我发现了一些错误,并修复了一些子查询。这里是最终版本:

INSERT INTO att_oem_orders 
SELECT 
    NULL, 
    ost.om_or_po, 
    (SELECT 
     FIRST(j.id) 
    FROM 
     jobs j 
    WHERE j.project_number = ost.project_no), 
    NULL, 
    (SELECT 
     FIRST(ao.id) 
    FROM 
     att_oem ao 
    WHERE ao.item_no = ost.item_no), 
    ost.po_number, 
    (SELECT 
     FIRST(ol.id) 
    FROM 
     att_oem_lsc ol 
    WHERE ol.status = ost.line_status_code), 
    ost.ordered_date, 
    ost.shipment_date, 
    NULL, 
    NULL, 
    ost.item_qty, 
    NULL, 
    NULL, 
    NULL, 
    NULL, 
    ost.ship_to, 
    ost.tracking_no, 
    ost.carrier 
FROM 
    oem_sync_temp ost 
WHERE ost.item_qty > 0 
相关问题