Terminator85 Geschrieben 8. Juli 2005 Teilen Geschrieben 8. Juli 2005 Folgende Aufgabe: Eine Tabelle hat Artikel,Produktgruppen,Kriterien Ich brauch jetzt alle Artikel die in mehreren Produktgruppen sind und sich durch unterschiedliche Kriterien unterscheiden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 8. Juli 2005 Teilen Geschrieben 8. Juli 2005 Folgende Aufgabe: Eine Tabelle hat Artikel,Produktgruppen,Kriterien Ich brauch jetzt alle Artikel die in mehreren Produktgruppen sind und sich durch unterschiedliche Kriterien unterscheiden. SELECT * FROM (SELECT Artikel, Count(Produktgruppe) PG, Count(Kriterien) K FROM Tabelle group by Produktgruppe, Kriterien) T1 WHERE PG > 1 AND K > 1 Ist das das, was du wolltest? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Terminator85 Geschrieben 8. Juli 2005 Autor Teilen Geschrieben 8. Juli 2005 das statement tut bei mir nicht (hab MS Sql-Server) Mein Ansatz war so: Select Artikel From Artikelkriterien Group by Artikel Having Count( distinct(Produktgruppe) )> 1 ABer wie bekomm ich noch die unterschiedlichen Kriterien je Produktgruppe ? Ich soll nämlcih nur die Ausgeben wo die Kriterien der Produktgruppen unterschiedlich sind Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
~Hawkeye~ Geschrieben 8. Juli 2005 Teilen Geschrieben 8. Juli 2005 Ich habe jetzt nicht lange drüber nachgedacht aber würde da nicht ein SELECT DISTINCT reichen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mme Geschrieben 11. Juli 2005 Teilen Geschrieben 11. Juli 2005 Ich habe dein Datenbankmodel noch nicht begriffen... Ist wirklich alles in einer Tabelle?? Und du schreibst das du mehrere Kriterien PRO Gruppe haben willst, aber in deinem Select fragst du die Tabelle ArtikelKriterien ab was darauf schließen lässt das die Kriterien nicht auf die Gruppen sondern auf die Artikel beziehen....???? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
AxlHammer Geschrieben 11. Juli 2005 Teilen Geschrieben 11. Juli 2005 Hallo zusammen, ich bin mir noch nicht ganz sicher, was du genau haben willst, aber vielleicht erfüllt das hier ja seinen Zweck... select distinct t1.artikel from tabelle t1 , tabelle t2 where t1.artikel = t2.artikel and t1.produktgruppe <> t2.produktgruppe and t1.kriterien <> t2.kriterien Gruß, Axl Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Terminator85 Geschrieben 11. Juli 2005 Autor Teilen Geschrieben 11. Juli 2005 Danke für die Antworten. Ja, es handelt sich wirklich nur um eine Tabelle da liegt ja auch die Schwierigkeit drin. Also ich mach mal ein Beispiel: Ich habe mehrere Artikel und brauche alle Artikel die in unterschiedlichen Produktgruppen sind. Zum Beispiel: Filter Ist in der Produktgruppe: Kaffee und Öl. Und diese Produkte müssen sich jetzt noch zusätzlich durch unterschiedliche Kriterien unterscheiden. Zum Beispiel: Kaffefilter hat das Kriterium: Größe, Gewicht Ölfilter: Farbe, Durchmesser Nochmal Zusammengefasst: Ich brauche alle Artikel die es in mind. 2 Produktgruppen gibt. Und die sich noch zusätzlich durch ihre Kriterien unterscheiden. (und das ganze in einer Tabelle) @Axelhammer: Teste grad dein SQL Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mme Geschrieben 11. Juli 2005 Teilen Geschrieben 11. Juli 2005 Ich habe das nicht getestet aber du must doch nur deinen Ansatz oben nehmen und das gleiche nochmal mit den Kriterien machen. Nun hast du zwei Ergebnismengen. Wenn du nun diese Ergebnismengen miteinander verbindest hast du das ergebnis. Also ungefähr so: select AA.artikel from (Select Artikel From Artikelkriterien Group by Artikel Having Count( distinct(Produktgruppe) )> 1 ) AA , (Select Artikel From Artikelkriterien Group by Artikel Having Count( distinct(Kriterien) )> 1 ) BB where AA.artikel = BB.artikel; Ggf. anpassen auf die Syntax deines dbms... was benutzt du? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Terminator85 Geschrieben 11. Juli 2005 Autor Teilen Geschrieben 11. Juli 2005 Hey, vielen Dank werde ich gleich mal testen -->MS SQL Server 2000 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Terminator85 Geschrieben 11. Juli 2005 Autor Teilen Geschrieben 11. Juli 2005 Hab getestet beide SQL's liefern das selbe ergebnis: SQL 1: select AA.artikel from (Select Artikel From Artikelkriterien Group by Artikel Having Count( distinct(Produktgruppe) )> 1 ) AA , (Select Artikel From Artikelkriterien Group by Artikel Having Count( distinct(Kriterien) )> 1 ) BB SQL 2: select distinct t1.artikel from tabelle t1 , tabelle t2 where t1.artikel = t2.artikel and t1.produktgruppe <> t2.produktgruppe and t1.kriterien <> t2.kriterien wobei Sql 2 schneller ist. Jetzt muss ich mal anhand von testdaten sehen ob das so richtig ist. :mod: Bis dahin. VIELEN DANK Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mme Geschrieben 11. Juli 2005 Teilen Geschrieben 11. Juli 2005 hast du sql1 so ausgeführt wie es da steht, oder mit der where-Bedingung die ich oben noch dran hatte? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Terminator85 Geschrieben 11. Juli 2005 Autor Teilen Geschrieben 11. Juli 2005 ich habs schon mit der where Bedingung ausgführt nur falsch gepostet :floet: SQL 1: select AA.artikel from (Select Artikel From Artikelkriterien Group by Artikel Having Count( distinct(Produktgruppe) )> 1 ) AA , (Select Artikel From Artikelkriterien Group by Artikel Having Count( distinct(Kriterien) )> 1 ) BB where t1.artnr = t2.artnr Aber ich weiß nicht ob die beiden Sql's stimmen, da es mehrere Kriterien gibt die zuvergleichen sind. Besipiel: Produktgruppe X hat 5 Kriterien (a,b,c,d,e) Produktgruppe y hat 5 Kriterien (a,b,c,d,f) So jetzt müsse quasi die kompletten Kriterien verglichen werden. Da e und f nicht übereinstimmen sollte dieser Datensatz angezeigt werden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Terminator85 Geschrieben 11. Juli 2005 Autor Teilen Geschrieben 11. Juli 2005 Die SQL's stimme leider immer noch nicht ganz da ein Artikel mehrere Kriterien haben kann funktioniert der Vergleich "t1.kriterien <> t2.kriterien" nicht Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mme Geschrieben 12. Juli 2005 Teilen Geschrieben 12. Juli 2005 verstehe, das hörte sich oben so an, als wenn die Artikel einfach nur mehrere Kriterien haben müssen, aber nicht unterschiedliche Kriterien im Bezug auf die anderen Artikel... Ich glaube bei diesem Problem wirst du mit sql nicht weit kommen. Und wenn doch mit einem Aufwand, bei dem du irgendein Porgramm schon lange fertig hast... Ich würde da eine Porgrammlogik reininvestieren. Und wenn nicht Ãm Frontend, dann irgenwas mit Pl/SQL bzw. bei MS heißt es glaube ich T-SQL (?) welches dann eine temporäre tabelle füllt o.ä. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.