Kleinstes Datum herausfinden

na da muss man erstmal drauf kommen ;-)

So, jetzt gibts zwar keinen Fehler mehr, aber auch keine Werte. Sprich mein Ergebnis ist immer blank :-(

Woran könnte das denn jtzt noch liegen :confused:

...nun....mit diesen Bedinungen gibt es keine Datensätze, welche die Bedinung erfüllen ? Ohne deine Daten zu sehen, ist dies unmöglich zu beurteilen.

Lass die Query laufen mit den where - Bedinungen auskommentiert und füge eine nach der anderen wieder zu, dann siehst du, wo die Einschränkung liegt

Gruss
 
hmmm... das merkwürdige ist, dass ich ohne die neuel Where Bedingung
(history.col_value_new = select max(history.col_value_new) from history;) jede Menge ergebnisse erhalte. Sobald ich die Where bedingung aber hinzufüge, gibt es null "treffer".
Was ja eigentlich total unlogisch ist, da col_value_new ja bereits im resultset vorhanden ist... !:confused:
 
hmmm... das merkwürdige ist, dass ich ohne die neuel Where Bedingung
(history.col_value_new = select max(history.col_value_new) from history;) jede Menge ergebnisse erhalte. Sobald ich die Where bedingung aber hinzufüge, gibt es null "treffer".
Was ja eigentlich total unlogisch ist, da col_value_new ja bereits im resultset vorhanden ist... !:confused:

- Format des Datums? Führe einfach mal select max(history.col_value_new) from history; aus. Das muss 1 Row ergeben. Gibt es diesen Wert so in der Tabelle?


Gruss
 
okay, das ergiebt genau 1 treffer.

Ich abe die Where Bedingung nocheinmal etwas umgestrickt:

Code:
history.col_value_new = (select min((history.col_value_new)) from history where( history.table_name = 'KUNDEN_EXT' ) and  history.col_name='LETZTE_BEWEGUNG') )

Das bringt mir jetzt auch genau einen Treffer.

Ich möchte nun aber ja für jeden Kunden das kleinste Datum ausgegeben bekommen. So wie es im moment ist, erhalte ich nur das kleinste Datum von allen, also genau 1 Kunde.
Ich möchte ja aber gerne für jeden Kunden das älteste Datum. Sprich für jeden history.pk_value möchte ich das kleinste history.col_value_new.

Irgendwie bin ich mittlerweile total verwirrt ....
ich hoffe Du ahst noch Geduld mit mir :)
 
okay, das ergiebt genau 1 treffer.

Ich abe die Where Bedingung nocheinmal etwas umgestrickt:

Code:
history.col_value_new = (select min((history.col_value_new)) from history where( history.table_name = 'KUNDEN_EXT' ) and  history.col_name='LETZTE_BEWEGUNG') )

Das bringt mir jetzt auch genau einen Treffer.

Ich möchte nun aber ja für jeden Kunden das kleinste Datum ausgegeben bekommen. So wie es im moment ist, erhalte ich nur das kleinste Datum von allen, also genau 1 Kunde.
Ich möchte ja aber gerne für jeden Kunden das älteste Datum. Sprich für jeden history.pk_value möchte ich das kleinste history.col_value_new.

Irgendwie bin ich mittlerweile total verwirrt ....
ich hoffe Du ahst noch Geduld mit mir :)


Hi,

Dazu musst du nach Kunden_id gruppieren und das MAX als Aggregat im Select aufnehmen (Da benötigst du keine Subquery)

Code:
select kunden_id, max(col_value_new) from .....
....
Group by kunden_id



- Die weiteren Felder musst du dir noch zu-Joinen

(Übrigens : Willst du das älteste (=min) oder jüngste Datum (=max) haben ?)

Gruss
 
Guten morgen,

ich ahbs ausprobiert, wie du gesagt hast:

hier jetzt mein aktueller (verschlankter Code):

Code:
  SELECT max( history.col_value_new),   
         history.pk_value,   
         max(history.col_value_new)
    FROM history  
   WHERE ( history.table_name = 'KUNDEN_EXT'  ) AND  
         ( history.col_name = 'LETZTE_BEWEGUNG' )   
GROUP BY history.col_value_new,   
         history.pk_value

Aber ich erhalte nicht nur den aktuellsten Wert, sondern auch noch alle älteren...

Ich bin so langsam aber sicher total verzweifelt :confused::confused:
 

Neue Beiträge

Zurück