WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 13.10.2004, 09:40   #1
reichr
Veteran
 
Registriert seit: 31.12.2002
Beiträge: 390


reichr eine Nachricht über ICQ schicken
Standard SQL statement

hy!

möchte von t1 alle zeilen zurückbekommen wo in der spalte sBsArNr ein datensatz öfter als einmal vorkommt.

wie stell ich das am besten an?
____________________________________
lg


Chris
reichr ist offline   Mit Zitat antworten
Alt 13.10.2004, 09:57   #2
mqs
Master
 
Registriert seit: 08.05.2001
Alter: 43
Beiträge: 533


mqs eine Nachricht über ICQ schicken
Standard

ich würds wahrscheinlich so machen, dass ich die stichwörter in ein feld lade, und dann die anzahl der jeweiligen auslese... und dann mit ner for schleife das ganze ausgeben.. ist evt n bisschen kompliziert gedacht..


so in der art?

PHP-Code:


$ergebnis 
mysql_query("SELECT sBsArNr FROM t1 ORDER BY sBsArNr");
while(
$row mysql_fetch_object($ergebnis))

$neweintrag=$row->sBsArNr;
 if(
$oldeintrag!=$neweintragfeld[]=$row->sBsArNr;
$oldeintrag=$neweintrag;
}

for(
$i=0;$i<count($feld);$i++)
{
$anz= @mysql_num_rows(@mysql_query("SELECT sBsArNr FROM t1 WHERE sBsArNr='$feld[]'"));
echo 
$anz;

____________________________________
http://www.schmausen.at
Dein Infoportal für Mittagsmenüs in Klagenfurt
mqs ist offline   Mit Zitat antworten
Alt 13.10.2004, 10:13   #3
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

Bei MySQL könntest du das mit HAVING realiasieren, aber wenn ich mich richtig erinnere bits du MSSQL Jünger?

~
____________________________________
LOL - Mein erstes Post im Programmier Forum

MACINTOSH - Most Applications Crash, If Not The Operating System Hangs
käptn ist offline   Mit Zitat antworten
Alt 13.10.2004, 10:21   #4
reichr
Veteran
 
Registriert seit: 31.12.2002
Beiträge: 390


reichr eine Nachricht über ICQ schicken
Standard

@käptn

ja, wäre auf MSSQL server
____________________________________
lg


Chris
reichr ist offline   Mit Zitat antworten
Alt 13.10.2004, 11:15   #5
mqs
Master
 
Registriert seit: 08.05.2001
Alter: 43
Beiträge: 533


mqs eine Nachricht über ICQ schicken
Standard

ok.. habt ihr einen link für optimierte mysql abfragen, weil wenn du sagst dass das einfacher geht würd mich das auch gerne interessieren.. weil mir kommt es so vor, dass ich da von vielen befehlen keine ahnung hab, die mir einiges erleichtern würden
____________________________________
http://www.schmausen.at
Dein Infoportal für Mittagsmenüs in Klagenfurt
mqs ist offline   Mit Zitat antworten
Alt 13.10.2004, 12:27   #6
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

HAVING ist weit davon entfernt, um als "optimiert" bezeichnet werden zu können.

Sehe gerade, dass auch MSSQL HAVING unterstützt.

Also, etwa so:
Code:
SELECT *, COUNT(*) AS anzahl 
FROM table
HAVING anzahl > 1;
~
____________________________________
LOL - Mein erstes Post im Programmier Forum

MACINTOSH - Most Applications Crash, If Not The Operating System Hangs
käptn ist offline   Mit Zitat antworten
Alt 13.10.2004, 13:26   #7
JackLemon
Senior Member
 
Registriert seit: 02.11.2002
Beiträge: 179


Standard

wozu dann eigentlich having? ist where nicht mehr 'in'? oder macht das wirklich einen unterschied?

SELECT *, COUNT(*) AS anzahl
FROM table
WHERE anzahl > 1;
____________________________________
It\'s not a bug... It\'s a feature!

You know, the main advantage of encrypted paella over ordinary paella is that nobody but you knows what you are eating... (Alvaro)
JackLemon ist offline   Mit Zitat antworten
Alt 13.10.2004, 13:31   #8
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

Der Alias "anzahl" ist zur Zeit der Evaluierung der WHERE Klausel noch nicht verfügbar.

Ah ja, ausserdem fehlt in meinem Statement eine GROUP BY Klausel.

~
____________________________________
LOL - Mein erstes Post im Programmier Forum

MACINTOSH - Most Applications Crash, If Not The Operating System Hangs
käptn ist offline   Mit Zitat antworten
Alt 13.10.2004, 13:43   #9
JackLemon
Senior Member
 
Registriert seit: 02.11.2002
Beiträge: 179


Standard

ah, hast natürlich recht. wie praktisch!
____________________________________
It\'s not a bug... It\'s a feature!

You know, the main advantage of encrypted paella over ordinary paella is that nobody but you knows what you are eating... (Alvaro)
JackLemon ist offline   Mit Zitat antworten
Alt 13.10.2004, 13:57   #10
JackLemon
Senior Member
 
Registriert seit: 02.11.2002
Beiträge: 179


Standard

moment: selbst mit "GROUP BY" wird dein statement nicht das machen was "reichr" wollte: mit "...wo in der spalte sBsArNr ein datensatz öfter als einmal vorkommt" hat er wohl gemeint "wo mehr als ein datensatz die selbe artikelnummer hat". kann mit deinem statement nicht gehen, weil du ja nicht alle zutreffenden rows ausspuckst sondern sie ja aggregieren möchtest (wonach denn eigentlich? alle felder außer der artikelnummer sind ja potenziell verschieden!)

ich sag nur: theta-join!

SELECT DISTINCT tab1.* FROM t1 tab1, t1 tab2 WHERE tab1.sBsArNr = tab2.sBsArNr;
____________________________________
It\'s not a bug... It\'s a feature!

You know, the main advantage of encrypted paella over ordinary paella is that nobody but you knows what you are eating... (Alvaro)
JackLemon ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:20 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag