모두 나는이 문제에 접근하는 가장 좋은 방법을 찾기 위해 노력하고 있습니다. 본질적으로 두 개의 테이블을 비교하고 "OrderComplete"라는 열이 "예"이거나 레코드가 현재 삽입 테이블에없는 경우와 같이 특정 조건이 충족되면 기존 레코드의 복제본을 삽입하려고합니다. IF 문이나 CASE를 사용하려고했지만 IF 부분이 붙어 있습니다. 아래는 IF 문을 작성하는 데 필요한 두 가지 쿼리입니다. 어떤 생각이나 생각?SQL 쿼리 문제를 사용하여/case 문을 사용하는 경우
두 쿼리 모두 아래에서 잘 작동하지만 중복 항목을 찾고 삽입 테이블의 항목 "OrderComplete"가 yes로 설정된 경우에만 복사본이 필요합니다. 간단한 방정식을 넣을 수 있지만 IF 영역에 SELECT 또는 좀 더 복잡한 것을 삽입하고 싶습니다. 그리고 IF 문에서 두 테이블을 비교할 수는 없지만 지금 당황한 것입니다.
IF ?????
BEGIN
use [PaperDB]
INSERT INTO dbo.ORDERED_PARTS_TABLE
([OrderPN]
,[OldPN]
,[OldPN2]
,[PartDescription]
,[WhereUsed]
,[LocationStored]
,[LocationDescription]
,[AlternateLocationStored]
,[AlternateLocationDescription]
,[QuantityOnHand]
,[ReorderQuantity]
,[QuantityToOrder]
,[Category]
,[LastUpdated]
,[spare]
,[spare2]
,[spare3])
SELECT s.orderpn, s.oldpn, s.oldpn2, s.partdescription, s.whereused, s.locationstored,
s.locationdescription, s.alternatelocationstored, s.alternatelocationdescription,
s.quantityonhand, s.reorderquantity, s.reorderquantity - s.QuantityOnHand , s.category,
s.lastupdated, s.QuantityOnHand , s.ReorderQuantity , s.Spare3
FROM dbo.PARTS_ORDER_TABLE as s
LEFT OUTER JOIN
ORDERED_PARTS_TABLE as t
on s.OrderPN = t.OrderPN
WHERE (NOT EXISTS (SELECT *
from ORDERED_PARTS_TABLE
where s.OrderPN = t.OrderPN))
END
ELSE
BEGIN
use [PaperDB]
INSERT INTO dbo.ORDERED_PARTS_TABLE
([OrderPN]
,[OldPN]
,[OldPN2]
,[PartDescription]
,[WhereUsed]
,[LocationStored]
,[LocationDescription]
,[AlternateLocationStored]
,[AlternateLocationDescription]
,[QuantityOnHand]
,[ReorderQuantity]
,[QuantityToOrder]
,[Category]
,[LastUpdated]
,[spare]
,[spare2]
,[spare3])
SELECT s.orderpn, s.oldpn, s.oldpn2, s.partdescription, s.whereused, s.locationstored,
s.locationdescription, s.alternatelocationstored, s.alternatelocationdescription,
s.quantityonhand, s.reorderquantity, s.reorderquantity - s.QuantityOnHand , s.category,
s.lastupdated, s.QuantityOnHand , s.ReorderQuantity , s.Spare3
FROM dbo.PARTS_ORDER_TABLE as s
LEFT OUTER JOIN
ORDERED_PARTS_TABLE as t
on s.OrderPN = t.OrderPN
WHERE s.OrderPN = t.OrderPN AND t.OrderComplete = 'yes'
END
구문이 SQL Server처럼 보이기 때문에 sql-server 태그를 추가했습니다. –
한가지 말하자면,'if' 전에'use' 문을 움직이십시오. 둘 다. –
SQL Server를 사용하고 있다면 어떤 버전이 될 수 있습니까? – JodyT