我有这个查询
SELECT SI_Num_Inventario = COALESCE(t.SI_Num_Inventario, c.SI_Num_Inventario)
,SI_Ubicacion = COALESCE(t.SI_Ubicacion, c.SI_Ubicacion)
,SI_Ubicacion_Fisica = COALESCE(t.SI_Ubicacion_Fisica, c.SI_Ubicacion_Fisica)
,SI_Num_Articulo = COALESCE(t.SI_Articulo, c.SI_Num_Articulo)
,NULL
,SI_Num_Conteo = COALESCE(cs.SI_Num_Conteo, 2)
,GETDATE()
,'Admin'
,c.SI_OV
FROM SI_Inventario_Teorico_QAD t
FULL JOIN SI_Conteo c ON t.SI_Articulo = c.SI_Num_Articulo
AND t.SI_Ubicacion = c.SI_Ubicacion
INNER JOIN SI_Maestro_Ref_QAD m ON t.SI_Articulo = m.SI_Num_Articulo
OR c.SI_Num_Articulo = m.SI_Num_Articulo
FULL JOIN SI_Consecutivo cs ON c.SI_Num_Inventario = cs.SI_Num_Inventario
AND cs.SI_Estado = 0
WHERE c.SI_Num_Articulo = 201423
OR t.SI_Articulo = 201423
我想告诉你,如果c.SI_OV IS NULL
我这样做INSERT
:
IF c.SI_OV IS NULL
INSERT INTO SI_Conteo(SI_Num_Inventario, SI_Ubicacion,SI_Num_Articulo,SI_Cantidad,SI_Num_Conteo,SI_Fecha_Conteo, SI_Usuario,SI_OV)
如果NULL
不是,请插入另一个:
ELSE
INSERT INTO SI_Conteo(SI_Num_Inventario, SI_Ubicacion_Fisica,SI_Num_Articulo,SI_Cantidad,SI_Num_Conteo,SI_Fecha_Conteo,SI_Usuario,SI_OV)
END IF;
或者使用CASE WHEN
:
我希望你能帮助我。
为了实现你想要的,你需要依赖一个与你需要选择的字段定义相同的临时表(例如我把
INT
临时表的一些字段作为数据类型)。然后,查询的结果将被插入到临时表中,以便稍后您可以验证结果
SI_OV
并评估INSERT
将执行的类型。代码如下所示:
注意: 的结果
INSERT
是假设主查询将始终返回一个结果,因为如果它不返回结果或多个结果,则行为可能不是您所期望的。