Sql 在临时表中插入值与源不同的数据
我需要将数据拉入临时表中,以便将其分组到产品类型中,但我们目前有特定产品的不同变体,我需要将所有变体作为原始变体插入。我按如下方式编写了代码,但它仍然不起作用Sql 在临时表中插入值与源不同的数据,sql,sql-server,database,Sql,Sql Server,Database,我需要将数据拉入临时表中,以便将其分组到产品类型中,但我们目前有特定产品的不同变体,我需要将所有变体作为原始变体插入。我按如下方式编写了代码,但它仍然不起作用 IF EXISTS (SELECT * FROM sys.tables WHERE name LIKE '#temp%') DROP TABLE #temp CREATE TABLE #temp ( Product VARCHAR(max) NULL,
IF EXISTS (SELECT *
FROM sys.tables
WHERE name LIKE '#temp%')
DROP TABLE #temp
CREATE TABLE #temp
(
Product VARCHAR(max) NULL,
failure_code VARCHAR(max) NULL
)
IF Product IN ( 18, 19, 20, 23,
24, 25 )
SELECT Product = 'DSD 4136'
INSERT INTO #temp
(Product,
failure_code)
SELECT product.prod_desc AS Product,
test_failure_code.failure_code
FROM repair
INNER JOIN test_failure_code
ON repair.id_test_failure_code = test_failure_code.id_test_failure_code
INNER JOIN production_event_details
ON repair.id_production_event_details = production_event_details.id_production_event_details
INNER JOIN product
ON production_event_details.prod_id = product.prod_id
INNER JOIN repair_scm_bom_item
ON repair.id_repair = repair_scm_bom_item.id_repair
INNER JOIN repair_fault
ON repair_scm_bom_item.id_repair_fault = repair_fault.id_repair_fault
INNER JOIN scm_bom_item
ON repair_scm_bom_item.id_scm_bom_item = scm_bom_item.id_scm_bom_item
GROUP BY product.prod_desc,
test_failure_code.failure_code
SELECT *
FROM #temp
DROP TABLE #temp
声明
IF Product IN ( 18, 19, 20, 23, 24, 25 )
SELECT Product = 'DSD 4136'
实际上不会执行任何操作,您需要在insert语句中使用CASE语句,当产品是您列出的选项之一时,这将选择产品DSD 4136:
INSERT INTO #temp
(Product,
failure_code)
SELECT CASE WHEN product.prod_desc IN ( 18, 19, 20, 23, 24, 25 ) THEN 'DSD 4136'
ELSE product.prod_desc
END
AS Product,
test_failure_code.failure_code
FROM repair
INNER JOIN test_failure_code
ON repair.id_test_failure_code = test_failure_code.id_test_failure_code
INNER JOIN production_event_details
ON repair.id_production_event_details = production_event_details.id_production_event_details
INNER JOIN product
ON production_event_details.prod_id = product.prod_id
INNER JOIN repair_scm_bom_item
ON repair.id_repair = repair_scm_bom_item.id_repair
INNER JOIN repair_fault
ON repair_scm_bom_item.id_repair_fault = repair_fault.id_repair_fault
INNER JOIN scm_bom_item
ON repair_scm_bom_item.id_scm_bom_item = scm_bom_item.id_scm_bom_item
GROUP BY product.prod_desc,
test_failure_code.failure_code
你应该准确地描述什么不起作用,否则人们就帮不了你。陈述中的if产品失败了。它不会将描述更改为我想要的新描述。我也尝试使用产品id,但仍然失败。我需要我们的DSD 4136产品的所有变体作为DSD 4136加载到临时表上,以便质量部门使用。谢谢Jamie,非常感谢,它工作起来很有魅力