Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#12

AW: SQL Server: Mehrere Datensätze gleichzeitig vergleichen und ändern

  Alt 17. Okt 2014, 11:43
So solltest du jeweils den ersten Wert bekommen, den du dann in alle anderen Datensätze reinpassten musst
SQL-Code:
SELECT v_id, v_nr, v_from
FROM vertrag
WHERE (v_nr, v_id) IN ( SELECT v_nr, MIN( v_id ) FROM vertrag GROUP BY v_nr )
Seit wann geht das denn? Ich meine ein 'IN' mit einem 2-Tupel?

PS: Das könnte so gehen (ungetestet)
SQL-Code:
Update T
  set Datum = M.minDatum

from Vertraege T
join (
  select v_id, v_datum
    from Vertraege v
         join (select v_id, min (v_nr) as minNr from Vertraege) m
           on v.v_id=m.v_id and v_nr = m.minNr
  ) s
  on T.v_id = s.v_id
Das innerste Select 'm' erstellt für alle v_id die kleineste v_nr (als minNr)
Das wird dann mit den Verträgen verknüpft, um für jede v_id das Datum der kleinsten v_nr zu bekommen (s)
Und das wird dann als Quelle für das Update verwenden

Müsste funzen

Geändert von Dejan Vu (17. Okt 2014 um 11:52 Uhr)
  Mit Zitat antworten Zitat