我遇到了需要运行插入查询,这可能超出了我的专业知识。你可能会看到下面,我就像一只狗在这一点上追逐他的尾巴,我的代码不再正确。SQL插入选择选择查询
问题1:这只是没有做我所需要的,我很难得到它与一个查询。 问题2:它似乎对BOXES
表中的每行执行4次。
我当前的代码:
INSERT INTO [ROBOTICS_OPTICS_MECHUAT].[dbo].[AOF_BOXES_LINES]
(
[SALES_ORDER_NUMBER],
[SALES_ORDER_ID],
[SO_LINE_NUMBER],
[SO_LINE_ID],
[FINISHED_PART_NUMBER],
[QUANTITY],
[AOF_BOXES_ID]
)
SELECT
[SALES_ORDER_NUMBER],
[SALES_ORDER_ID],
[SO_LINE_NUMBER],
[SO_LINE_ID],
[FINISHED_PART_NUMBER],
0,
b.[ID]
FROM [ROBOTICS_OPTICS_MECHUAT].[dbo].[AOF_ALL_ORDER_LINES] AS aoL
LEFT JOIN [ROBOTICS_OPTICS_MECHUAT].[dbo].[AOF_BOXES] AS b
ON b.[SELECTED] = 'True'
WHERE EXISTS
(
SELECT oL.[SO_LINE_NUMBER] FROM [ROBOTICS_OPTICS_MECHUAT].[dbo].[AOF_ORDER_OPTICS] AS oL WHERE oL.[SERIAL_NUMBER] = 'EOSBAB130004'
)
我需要INSERT INTO
数据的一行包含从几个其他表选择的数据。关键是最后的WHERE语句。我需要从[AOF_ORDER_OPTICS]
表中获得与我提供的[SERIAL_NUMBER]
关联的[SO_LINE_NUMBER]
。
所有帮助表示赞赏。
这是T-SQL我希望 –
能不只是:JOIN AOF_ORDER_OPTICS AS醇对aoL.SO_LINE_NUMBER = oL.SO_LINE_NUMBER和ol [SERIAL_NUMBER] = 'EOSBAB130004' –
你的钥匙在你的陈述中重复4次。你正在用'[dbo]。[AOF_BOXES]'做一个'LEFT JOIN'。 WETHER有一个BOX或NOT,你会得到一个价值。因此重复值。 – logixologist