Schrift
[thread]3679[/thread]

Doppelte Filtern



<< |< 1 2 >| >> 16 Einträge, 2 Seiten
master
 2006-04-19 16:48
#34304 #34304
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
Nun ein reines SQL Problem
(bitte keine perl oder sonstige skript lösungsvorschläge)

Ich brauche etwas wie
Code: (dl )
SELECT DISTINCT ID, Name FROM tabelle

wobei Disitinct die doppelten [Namen] filtern soll. und ID ignorieren. .aber ID usw. brauche ich auch..

also so was wie

SELECT DISTINCT [achte nur auf name], plus rest * FROM ....

Kurz gesagt ich brauche einen SELECT, der mir alle Datensätze ausgibt, ausgenommen diejenigen, bei denen der name doppelt ist.

Und ohne "Group By" bei der endausgabe, weil letzteres Zeichen abschneidet.

Geht um Standard SQL, bzw. für Access.
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
Relais
 2006-04-19 17:00
#34305 #34305
User since
2003-08-06
2246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=master,19.04.2006, 14:48]Und ohne "Group By" bei der endausgabe, weil letzteres Zeichen abschneidet.[/quote]
Das kann aber nicht sein. Da ist Deine Datenbank oder Deine Datenanzeige kaputt.
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop (Termin wird noch gesucht) 2025 in München.

Winter is Coming
Relais
 2006-04-19 17:02
#34306 #34306
User since
2003-08-06
2246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=master,19.04.2006, 14:48]Ich brauche etwas wie
Code: (dl )
SELECT DISTINCT ID, Name FROM tabelle

wobei Disitinct die doppelten [Namen] filtern soll. und ID ignorieren. .aber ID usw. brauche ich auch..[/quote]
Wenn Du DISTINCT NAME, * meinst, solltest Du nicht DISTINCT ID schreiben, oder hab ich Dich falsch verstanden?
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop (Termin wird noch gesucht) 2025 in München.

Winter is Coming
master
 2006-04-19 17:16
#34307 #34307
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
@relais

Ja ist so.. sobald in der Accsess Memo-felder benutz werden..
Aber dieser Mikroschrott Bug, ist nicht das Problem, bzw. nicht zu beheben.

Und selbst wenn... es bleibt immre noch die frage wie man das ausliest

Per skript = kein problem.. aber

am elegantesten wäre eben

select distinct(achte nur auf "name") und selektiere zusätlich den rest FROM tabelle

select distinct * from .... = keine filterung
select distinct id, name from .... = keine filterung
select distinct name from .... = filterung (aber ich brauche ja noch die ID!)
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
Relais
 2006-04-19 17:22
#34308 #34308
User since
2003-08-06
2246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wie schon geschrieben, imho sollten [sql]SELECT DISTINCT NAME, * FROM ...[/sql] oder auch [sql]SELECT DISTINCT NAME, ID FROM ...[/sql] es tun.\n\n

<!--EDIT|Relais|1145453239-->
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop (Termin wird noch gesucht) 2025 in München.

Winter is Coming
master
 2006-04-19 17:26
#34309 #34309
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
@Relais..
Das ist ja genau das Problem... das funktioniert eben nicht bei MS-SQL

Code: (dl )
1
2
3
SELECT DISTINCT name,* FROM tabelle
oder
SELECT DISTINCT name,ID FROM tabelle

gibt:

müller, 1
müller, 2
peter, 3
peter, 3

also alles hässliche (und das in MS-SQL)...\n\n

<!--EDIT|master|1145453214-->
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
Taulmarill
 2006-04-19 17:44
#34310 #34310
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
das problem ist, dass du das mit distinct nicht hinbekommen wirst. ich meine, sagen wir, du has drei mal den selben namen, dann hast du aber auch drei unterschiedliche ids. welche id soll er denn jetzt ausgeben?
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Taulmarill
 2006-04-19 17:56
#34311 #34311
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
ich hab in der PostgreSQL doku noch was gefunden. keine ahnung ob das in MSSQL geht.
[sql]SELECT DISTINCT ON ( name ) name, ID FROM tabelle;[/sql]
bedenke aber, dass es afaik nicht vorhersagbar ist, welche zeile er für welchen namen ausgibt. es seie denn du sortierst die tabelle, dann nimmt er die erste/oberste zeile.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
master
 2006-04-19 18:01
#34312 #34312
User since
2003-10-20
610 Artikel
BenutzerIn
[default_avatar]
@Taulmarill

genau sowas suche ich... nur MSSQL bringt gleich mal ne fehlermeldung :-(
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;
pq
 2006-04-19 18:27
#34313 #34313
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
also in mysql geht einfach SELECT DISTINCT(name), id
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 >| >> 16 Einträge, 2 Seiten



View all threads created 2006-04-19 16:48.