fanelf.de: MS SQL - Abfrage, Hilfe

Beitrag lesen

hallo vinzenz,

du hast recht.

die problemstellung des fragestellers läßt sich mit 'sauberem' sql nicht als einfacher select lösen, da das gewünschte ergebnis einen mix aus gruppierten und ungruppierten spalten darstellt. daher ergibt sich die von ilja genannte lösung, welche zunächst gruppiert die relevanten zeilen ermittelt, und diese dann als bedingung für einen ungruppierten select darstellt.

das problem entsteht aber nicht durch 'doppelte' max-werte, da max selbst bei doppelten werten immer nur einen max-wert liefert.

die 'doppelten' zeilen entstehen durch die 'saubere' notation. dies ist die aggregation von 'Bis' und 'Tage'.

eine ausnahme bildet mysql. es ist in dieser hinsicht sehr tolerant und erlaubt die selektion weiterer spalten, ohne diese zu aggregieren. bei verzicht auf die aggregation von 'Bis' und 'Tage', werden diese als 'nicht aggregiert' geliefert. somit wäre das gewünschte ergebnis erreicht.