0

Я новичок на этом сайте, и я действительно застрял в выполнении большого обновления для базы данных. Я предоставлял список транзакций, которые необходимо обновить. вот небольшой пример базы данных вместе с желаемым выходом в конце enter image description hereОбновление Bulk Data SQL server

Задать вопрос. У меня есть список транзакций, которые buyID указывает на PurchaseTypeID = 2, и хотел бы, чтобы все транзакции указывали на идентификатор покупки, у которого есть PruchaseTypeID из 5.

+0

пожалуйста, добавьте немного DDL, DML, посмотрите здесь о том, чтобы спросить и получить помощь быстрее: https: //spaghettidba.com/2015/04/24/how-to-post-at-sql-question- on-a-public-forum/ – TheGameiswar

+0

Извините. Вот лучший скриншот. @TheGameiswar –

+0

, пожалуйста, прочитайте ссылку, которую я вставлял, задавая хороший вопрос, имеет свои льготы, хотя это так базово – TheGameiswar

ответ

0

Вам нужно добавить более подробную информацию к логике, которую вы ищете. Я считаю, что вы пытаетесь рассказать о клиенте.

EDIT: Добавлена ​​инструкция по обновлению и использование таблицы cte, а не temp.

Create Table #Purchases (ID Int, CustomerID Int, PurchaseTypeID Int) 
Insert #Purchases Values (1987, 1, 209) 
Insert #Purchases Values (32875, 1, 2) 
Insert #Purchases Values (628900, 3, 220) 
Insert #Purchases Values (449000, 3, 30) 
Insert #Purchases Values (4560, 3, 209) 
Insert #Purchases Values (8008, 3, 2) 
Insert #Purchases Values (9856, 3, 5) 
Insert #Purchases Values (6000, 1, 5) 

Create Table #Transactions (TransactionID Int, PurchaseID Int, PurchaseIDForwardTo Int) 
Insert #Transactions Values (1, 1987, 32875) 
Insert #Transactions Values (2, 628900, 8008) 
Insert #Transactions Values (3, 449000, 8008) 
Insert #Transactions Values (4, 4560, 8008) 

Select * From #Purchases 
Select * From #Transactions 

;With ctePurchasesTransactions As 
(
Select * 
    From #Purchases P 
    Join #Transactions T On T.PurchaseID = P.ID 
) 
Update T Set T.PurchaseIDForwardTo = P.ID 
    From #Transactions T 
    Join ctePurchasesTransactions PT On PT.TransactionID = T.TransactionID 
    Join #Purchases P On P.CustomerID = PT.CustomerID And P.PurchaseTypeID = 5 

Select * From #Transactions 
+0

Да, вы правы. Каждая транзакция имеет источник покупкиID и пункт назначения идентификатора покупки, который принадлежит идентификатору клиента. Каждая Приобретательная покупка имеет к нему идентификатор покупки. как я могу обновить Transaction.PuurchaseIDforwatdedto? @joe C –

+0

Я обновил свой ответ с помощью инструкции обновления. –