Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Jahreszahlen in einer Spalte ausgeben



Hobbes
10-07-2008, 15:23
Hi allerseits,

für einen JOIN in mySQL brauche ich eine Zwischentabelle, die nur eine Spalte mit bestimmten Jahreszahlen enthält.

Ich möchte also die Ausgabe von

SELECT 2004, 2005, 2006, 2007
nicht in einer Zeile, sondern die Zahlen untereinander in einer Spalte haben.

Weitere Informationen wird diese Zwischentabelle nicht haben. Ist so etwas überhaupt möglich? Eine weitere Tabelle in der Datenbank möchte ich dafür eigentlich nicht anlegen, da die Werte sich dynamisch stark ändern.

undefined
10-07-2008, 15:53
Weis nicht genau was du vorhast?


SELECT DATE_FORMAT( DATE_ADD(NOW(), INTERVAL 5 YEAR), "%Y") AS Springe_zu_Jahr;
SELECT PERIOD_DIFF(DATE_FORMAT(NOW(),"%Y"),DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 3 YEAR),"%Y") ) AS VERGANGENHEITS_VISIONEN;

Oder mit einem Referenz wert tricksen.


SELECT DATE_FORMAT(DATE_ADD(NOW(), INTERVAL id YEAR),"%Y"), id FROM tippspiel_teams;
+-----------------------------------------------------+----+
| DATE_FORMAT(DATE_ADD(NOW(), INTERVAL id YEAR),"%Y") | id |
+-----------------------------------------------------+----+
| 2010 | 2 |
| 2011 | 3 |
| 2012 | 4 |
| 2014 | 6 |
+-----------------------------------------------------+----+
4 rows in set (0.00 sec)

msi
10-07-2008, 17:01
Hi allerseits,

für einen JOIN in mySQL brauche ich eine Zwischentabelle, die nur eine Spalte mit bestimmten Jahreszahlen enthält.

Ich möchte also die Ausgabe von

SELECT 2004, 2005, 2006, 2007
nicht in einer Zeile, sondern die Zahlen untereinander in einer Spalte haben.

Weitere Informationen wird diese Zwischentabelle nicht haben. Ist so etwas überhaupt möglich? Eine weitere Tabelle in der Datenbank möchte ich dafür eigentlich nicht anlegen, da die Werte sich dynamisch stark ändern.

select 2004 union select 2005 union select 2006 union select 2007

aber post mal lieber deine ganze anfrage kann man sicher geschickter machen

Hobbes
11-07-2008, 07:27
Danke msi, das ist genau das, was ich suche. Kann man dem ganzen auch noch eine Spaltenüberschrift (z.B. Jahr) geben?

Es geht darum, dass ich eine Tabelle mit Namen habe. Für jede Person und jedes Jahr möchte ich jetzt eine Zeile ausgeben. Also so:


SELECT * FROM namen , (select 2004 union select 2005 union select 2006 union select 2007)

Name, Jahr
Name1, 2004
Name1, 2005
Name1, 2006
Name2, 2004
Name2, 2005
Name2, 2006
usw.

msi
11-07-2008, 17:14
namen kannste mit dem as operator geben:

select 2000 as jahr union select 2001 as jahr ....

evtl brauchst das as jahr auch nur beim ersten select angeben

Hobbes
11-07-2008, 17:17
Danke msi. Ich hatte es nur am Ende ausprobiert :)