sql >> Database teknologi >  >> RDS >> Sqlserver

Opdater forespørgsel med korreleret underforespørgsel

Selvom jeg tror, ​​at JOIN kriterier er højst usandsynligt, det ser ud til, at du prøver at gøre dette?

EDIT:Jeg har ændret JOIN kriterier, men det er det, du leder efter.Grouping By kolonner, der er OR 'd er mærkeligt.

;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ådan vil din forespørgsel se ud 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:Selvom jeg har svært ved at finde fejl i din postede syntaks.



  1. Hvordan viser man rækkenumre i PostgreSQL-forespørgsel?

  2. Hvordan springer man over kolonner i CSV-fil, når man importerer til MySQL-tabel ved hjælp af LOAD DATA INFILE?

  3. Opdel datointervaller i tilsvarende uger

  4. PostgreSQL vs Oracle:kompileringstidskontrol af PL/pgSQL