sql >> Databasteknik >  >> RDS >> Sqlserver

Uppdatera fråga med korrelerad underfråga

Även om jag tror att JOIN kriterier är högst osannolikt, det verkar som att du försöker göra det här?

EDIT:Jag har ändrat JOIN kriterier men det här är vad du är ute efter.Grouping By kolumner som är OR 'd är udda.

;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

Så här skulle din fråga se ut med 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:Även om jag har svårt att hitta fel på din syntax.



  1. MySQL - Hur väljer man rader där värdet är i array?

  2. Hur konfigurerar jag Django med pymysql som drivrutin?

  3. MySQL-lagrade procedurer använder dem eller inte för att använda dem

  4. Oracle:hur man infogar om en rad inte finns