Schrift
[thread]3542[/thread]

SQL: DISTINCT: über 2 Spalten

Leser: 1


<< |< 1 2 >| >> 13 Einträge, 2 Seiten
pktm
 2005-02-28 16:19
#33032 #33032
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Ich habe eine Datenbank in der pro Datensatz 2 Datum-Angaben vorkommen. Jetzt möchte ich alle vorkommenden Jahre haben. Wenn ich aber
Quote
SELECT DISTINCT YEAR(datum1), YEAR(datum2) FROM tabelle

mache erhalte ich automatisch 2 Werte, auch wenn sie gleich sind oder eigentlich durch DISTINCT terminiert werden sollten.

Muss ich das über einen Datenstruktur regeln (hash) oder kann ich es auch irgendwie in SQL hinbekommen, dass ich nur einmal die Vorkommnisse von Jahr erhalte?

Hoffe, ich habe mich nicht zu umständlich ausgedrückt - ansonsten bitte einfach fragen!

mfg pktm
http://www.intergastro-service.de (mein erstes CMS :) )
Crian
 2005-02-28 16:32
#33033 #33033
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
Soweit ich weiß lässt sich das nicht über die Datenbank regeln. Also musst Du wohl die Jahre wie schon angedeutet in ein Hash packen.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
mordur
 2005-02-28 18:26
#33034 #33034
User since
2003-09-25
182 Artikel
BenutzerIn
[Homepage] [default_avatar]
kannst du nicht sowas wie
Code: (dl )
SELECT DISTINCT YEAR(datum1) FROM tabelle where YEAR(datum1)=YEAR(datum2)

versuchen?
Crian
 2005-03-01 11:26
#33035 #33035
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
Ich verstehe es so, dass der OP nicht nur Fälle haben will, wo die beiden Jahreszahlen gleich sind.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
pktm
 2005-03-01 14:38
#33036 #33036
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Jo, ich möchte einfach alle verschiedenen Jahre haben sdie in der Datenbank stehen.

D.h. wenn in der ersten Spalte die Jahre 2005 und 2004 vorkommen und in der 2. Spalte die Werte 2005,2004,2003 dann will ich die Liste 2005,2004,2003.
http://www.intergastro-service.de (mein erstes CMS :) )
pq
 2005-03-01 15:35
#33037 #33037
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
vielleicht so:
[sql]SELECT YEAR(datum1) FROM tabelle  UNION
SELECT YEAR(datum2) FROM tabelle
[/sql]
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Crian
 2005-03-01 15:44
#33038 #33038
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
Und dann jeweils DISTINCT? Macht die Vereiningung aber auch nicht DISTINCT.
Oder obiges als Subselect, welches man dann mit DISTINCT versieht?
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
pq
 2005-03-01 15:49
#33039 #33039
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
also bei mir liefert UNION nur verschiedene werte. MySQL 4.1.9

(siehe http://www.mysql.com/UNION . man kann ALL oder DISTINCT mit angeben, DISTINCT ist aber default)\n\n

<!--EDIT|pq|1109685137-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pktm
 2005-03-02 17:33
#33040 #33040
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
UNION wäre die Lösung, allerdings gibt es da ein Problem:
"UNION ist implementiert in MySQL 4.0.0."

Ich habe, um auch Kunden mit älteren Datenbanksystemen bedienen zu können Version 3.23.51-nt.

Ob ich das ändere ist noch offen.
http://www.intergastro-service.de (mein erstes CMS :) )
pq
 2005-03-02 17:45
#33041 #33041
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
tja... temporäre tabelle...? subselects kommen ja dann auch nicht in frage...
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2005-02-28 16:19.