Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Abfrage mit korrelierter Unterabfrage aktualisieren

Obwohl ich den JOIN finde Kriterien ist höchst unwahrscheinlich, es sieht so aus, als würden Sie dies versuchen?

BEARBEITEN:Ich habe den JOIN geändert Kriterien, aber das ist es, wonach Sie suchen.Grouping By Spalten, die OR sind 'd ist seltsam.

;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

So würde Ihre Abfrage mit dem OR aussehen 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 

BEARBEITEN:Obwohl es mir schwer fällt, einen Fehler in Ihrer geposteten Syntax zu finden.