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, 14:14   #11
pc.net
Aussteiger
 
Benutzerbild von pc.net
 
Registriert seit: 07.10.2001
Ort: Nettistan
Beiträge: 12.997

Mein Computer

Standard

und wie wärs mit einem sub-select?
Code:
select distinct tab1.sBsArNr
from t1 tab1
where 1 < (select count(1)
           from t1 tab2
           where tab2.sBsArNr = tab1.sBsArNr)
;
und wenn man die anzahl der vorkommen auch noch wissen will, dann so:
Code:
select tab1.sBsArNr,
             count(tab1.sBsArNr)
from t1 tab1
where 1 < (select count(1)
           from t1 tab2
           where tab2.sBsArNr = tab1.sBsArNr)
group by tab1.sBsArNr
;
____________________________________
Praktizierender Eristiker

No hace falta ser un genio para saber quién dijo eso.
Der wirklich faule Mensch ist oft extrem fleißig, denn er will möglichst schnell wieder faul sein.
pc.net ist offline   Mit Zitat antworten
Alt 13.10.2004, 14:31   #12
JackLemon
Senior Member
 
Registriert seit: 02.11.2002
Beiträge: 179


Standard

keine chance, mein statement ist abzüglich whitespaces um 1/3 kürzer. wir müssen doch auch an den speicherplatz denken!!
____________________________________
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, 15:40   #13
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

Wo liegt das Problem?

Code:
SELECT 
  *, COUNT(*) AS anzahl
FROM 
  t1 
GROUP BY 
  sBsArNr
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, 16:26   #14
JackLemon
Senior Member
 
Registriert seit: 02.11.2002
Beiträge: 179


Standard

'tschuldigung, vielleicht steh' ich jetzt auf der leitung, aber mit

SELECT *, COUNT(*) AS anzahl

bekommst du doch alle tabellenfelder + das anzahl-feld. gut. das anzahl-feld wird durch GROUP BY() in die aggregatfunktion eingeschlossen. aber alle anderen felder sind imho _kein_ teil der aggregatfunktion. wie soll denn das bitte funktionieren??

und wenn's dich interessiert, mein sql-server kann das nicht mal kompilieren: "ungültiger spaltenname 'anzahl'"... (hab das ganze klarerweise auf eine passende datenstruktur bei mir umgeändert)

____________________________________
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, 17:59   #15
pc.net
Aussteiger
 
Benutzerbild von pc.net
 
Registriert seit: 07.10.2001
Ort: Nettistan
Beiträge: 12.997

Mein Computer

Standard

Zitat:
Original geschrieben von JackLemon
keine chance, mein statement ist abzüglich whitespaces um 1/3 kürzer. wir müssen doch auch an den speicherplatz denken!!
tjo ... mit einer ordentlich oracle-db macht das auch bei mehreren millionen datensätzen kein problem
____________________________________
Praktizierender Eristiker

No hace falta ser un genio para saber quién dijo eso.
Der wirklich faule Mensch ist oft extrem fleißig, denn er will möglichst schnell wieder faul sein.
pc.net ist offline   Mit Zitat antworten
Alt 13.10.2004, 18:59   #16
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

Man (Jack) gehe auf das 1. Post und lese es genau durch.
Weiters passe man den SQL Dialekt an sein RDBMS an oder nehme pc.net's Sub-Select Lösung.

Code:
SELECT 
  *
FROM 
  t1 
GROUP BY 
  sBsArNr
HAVING
  COUNT(*) > 1
Dat iss jet aber unjetestet!

~
____________________________________
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, 21:44   #17
JackLemon
Senior Member
 
Registriert seit: 02.11.2002
Beiträge: 179


Standard

isses nicht, käptn.

und wenn du mir nicht glaubst versuch's doch einfach. mysql frisst es, gibt aber nur eine einzige row pro n matches raus. was ja kaum das ziel sein wird - wenn er doppelte artikelnummern "bekämpfen" möchte dann wird er wohl alle rows brauchen die dieselbe artnr enthalten und nicht nur eine. das macht im übrigen auch der php-code im ersten post...

der mssql (um den es hier geht!) kompiliert es wieder nicht, weil er - wie ich schon angemerkt habe - der meinung ist dass die restlichen felder des selects ("*") in keiner aggregatfunktion inkludiert sind. und würdest du ihm alle felder explizit hinschreiben müsstest du sie trotzdem irgendwie aggregieren, mit SUM() oder COUNT() oder FIRST() oder sonstwas und das passt dann erst wieder nicht (->mysql-ergebnis).

kann es sein dass dein code nur mit oracle, version 7.1i-beta13 built-56 funktioniert?

wie dem auch sei, ein toter thread. reichr, halt dich an pc.net's subselect
____________________________________
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 14.10.2004, 10:36   #18
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

Mea cupla Was verwirrst mich auch so?

~
____________________________________
LOL - Mein erstes Post im Programmier Forum

MACINTOSH - Most Applications Crash, If Not The Operating System Hangs
käptn 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:48 Uhr.


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