Ich habe eine Tabelle mit zwei Datumsspalten. DATE1 ist manchmal NULL und enthält manchmal doppelte Werte. DATE2 ist immer ausgefüllt und eindeutig. Mein Tisch ist nach dem letzten DATE2-Datum sortiert.MySQL datetime Vergleich mit der vorherigen Zeile
Ich möchte eine neue Datumsspalte erstellen, in der DATE1 ausgewählt wird, es sei denn, sein Wert wird von der nächsten Zeile dupliziert oder es ist NULL. In diesem Fall möchte ich den Wert von DATE2 annehmen. Ich brauche auch zwei boolesche Spalten, die mir sagen, wenn eine dieser Bedingungen erfüllt ist. Lassen Sie mich anhand eines Beispiels zeigen, dass es klarer ist.
In der unten stehenden Tabelle Zeile 5 und 6 haben einen Wert von 27. Juli 2011 so würde Ich mag das neue Datum Spalte der Zeile 5 bis 4, August 2011 einzustellen (die DATE2 ist). In Zeile 3 ist der Wert von DATE1 NULL, also möchte ich den Wert von DATE2 annehmen.
Ich habe ein paar innere Select-Anweisungen ausprobiert, aber das kann nicht funktionieren. Irgendwelche Ideen?
Mein Tisch, wie es steht derzeit in der Datenbank: so viel
Row FINAL_DATE DATE1_DUPLICATE DATE1_WAS_NULL
----------------------------------------------------------
1 Nov 13, 2011 TRUE FALSE
2 Oct 10, 2011 FALSE FALSE
3 Oct 8, 2011 FALSE TRUE
4 Aug 12, 2011 FALSE FALSE
5 Aug 4, 2011 TRUE FALSE
6 Jul 27, 2011 FALSE FALSE
7 Jul 1, 2011 FALSE FALSE
8 May 24, 2011 FALSE FALSE
Danke:
Row DATE1 DATE2
--------------------------------------
1 Oct 10, 2011 Nov 13, 2011
2 Oct 10, 2011 Oct 10, 2011
3 NULL Oct 8, 2011
4 Aug 12, 2011 Aug 12, 2011
5 Jul 27, 2011 Aug 4, 2011
6 Jul 27, 2011 Jul 28, 2011
7 Jul 1, 2011 Jul 26, 2011
8 May 24, 2011 Jun 13, 2011
Was ich das Endergebnis erwarten aussehen!
@MattFenwick ich von Abfragen über mehrere Zeilen mit dem Tag in dem Sinne bin mit, nicht spezifisch für jede Art von SQL. Wenn Sie denken, dass es irreführend ist, können Sie ein besseres Tag vorschlagen? – McGarnagle
@MattFenwick guten Ruf, du liest meine Gedanken. – McGarnagle