我对SQL还是很陌生,希望您能对我的问题有所帮助。
我有一个名为Order_Status_Form_3
的表,其中包含列Order_ID (KEY)
,Customer_ID
,Customer_Unique_ID
,Status(KEY)
和Date
。
该表已填充,但Customer_Unique_ID
列除外。
要填充此列,我需要引用Customer
与Customer_ID
链接的Customer_Unique_ID
表,因此正确的ID覆盖正确的位置。当Customer_ID
中的Order_Status_Form_3
等于Customer_ID
表中的Customer
时,应将给定的Customer_Unique_ID
插入{{1}中的Customer_Unique_ID
列中}}。
我尝试将Order_Status_Form_3
与INSERT INTO
和SELECT
组合在一起,但是收到一条错误消息,内容为:
“无法插入NULL或更新为NULL:Order_ID”。
我猜不清楚该程序在哪里插入找到的值,并尝试将其插入所有列。我搜索了类似的问题,但找不到针对我特定问题的令人满意的答案。
这是我使用的代码:
INNER JOIN
我试图指定插入通过在末尾附加Insert Into "HXE_109"."Order_Status_Form_3" ("Customer_Unique_ID")
Select customer."customer_unique_id"
From "HXE_109"."Customer" As customer
Inner Join "HXE_109"."Order_Status_Form_3" As OrderStatus3
On OrderStatus3."Customer_ID" = customer."customer_id"
而找到的值的位置,但是收到了相同的错误。
WHERE
有人知道如何解决这个问题,可以告诉我我的错误在哪里吗?
预先感谢您阅读这个较长的问题并留下答案。
修改
我尝试使用Where OrderStatus3."Customer_ID" = customer."customer_id"
,但似乎无法正确使用。
update
现在我收到以下错误:
单行查询返回多个行
我需要在这里使用Update "HXE_109"."Order_Status_Form_3"
Set "Customer_Unique_ID" = (Select customer."customer_unique_id"
From "HXE_109"."Customer" As customer
Inner Join "HXE_109"."Order_Status_Form_3" As OrderStatus3
On OrderStatus3."Customer_ID" = customer."customer_id")
条件吗?
对不起,我很愚蠢。 :(
答案 0 :(得分:0)
我可以按照评论说,您要执行的是运行UPDATE语句
请检查以下DML命令
Update "HXE_109"."Order_Status_Form_3"
Set
"Customer_Unique_ID" = customer."customer_unique_id"
From "HXE_109"."Order_Status_Form_3" As OrderStatus3
Inner Join "HXE_109"."Customer" As customer
On OrderStatus3."Customer_ID" = customer."customer_id"
如果我尝试解释错误消息:
“无法插入NULL或更新为NULL:Order_ID”。
这与定义为NOT NULL的字段有关。因此,在目标表中ORDER_ID被定义为“非null”,因此在INSERT中,您必须为其提供一个值或将其定义为identity field in your HANA table定义
第二个错误:单行查询返回多个行
这与SQL Engine期望一个值而不是一组值的情况有关。 因此,将结果分配给Customer_Unique_ID字段的SELECT语句返回多个值。在这种情况下,SQL引擎会引发异常