sql >> Database >  >> RDS >> Sqlserver

Query bijwerken met gecorreleerde subquery

Hoewel ik denk dat de JOIN criteria is hoogst onwaarschijnlijk, het lijkt erop dat u dit probeert?

EDIT:ik heb de JOIN aangepast criteria, maar dit is wat u zoekt.Grouping By kolommen die OR . zijn 'd is vreemd.

;WITH MinOrderDates AS
(
    SELECT   CustID 
            ,OrderDate  = MIN(OrderDate)
    FROM Orders
    GROUP BY CustID
)

UPDATE C
SET FirstOrderDate = MIN(O.OrderDate)
FROM Customers      C
JOIN MinOrderDates  O   ON C.Id = O.CustID

Dit is hoe uw zoekopdracht eruit zou zien met de OR s

;WITH MinOrderDates AS
(
    SELECT   ShipperId
            ,PickupId
            ,ConsigneeId
            ,DeliveryId
            .BillingId
            ,OrderDate  = MIN(OrderDate)
    FROM Orders
    GROUP BY ShipperId
            ,PickupId
            ,ConsigneeId
            ,DeliveryId
            .BillingId
)

UPDATE C
SET FirstOrderDate = MIN(O.OrderDate)
FROM Customers      C
JOIN MinOrderDates  O   ON o.ShipperId     = C.Id or
                           o.PickupId      = C.Id or
                           o.ConsigneeId   = C.Id or
                           o.DeliveryId    = C.Id or
                           o.BillingId     = C.Id 

EDIT:hoewel ik het moeilijk vind fouten te vinden in je geposte syntaxis.



  1. Oracle Update Query ontbreekt SET-trefwoord - ORA97100 &ORA-00904

  2. Raceconditie tussen selecteren en updaten

  3. Taken op afstand uitvoeren vanuit IRI Workbench

  4. Verbindingspagina gewijzigd in PDO en kreeg mysql_error()