Hallo zusammen,
gerade habe ich mich hier angemeldet in der Hoffnung, Hilfe bei SQL zu finden. Ich studiere Wirtschaftsinformatik und habe nächste Woche eine Klausur über Datenbanksysteme. Hierfür muss ich auch fit in Standard-SQL sein, womit ich aber einige Probleme habe.
Folgenden (wahrscheinlich völlig einfachen) Aufgabentyp bekomme ich einfach nicht gelöst:
Gegeben sind mehere Tabellen, unter anderem eine Tabelle Medikament mit den Attributen Medikamentennummer, Bezeichnung, Preis und Packungsgröße. Nun soll ich z.B. 1) die Anzahl der unterschiedlichen Medikamente bestimmen oder aber 2) die Anzahl der verschiedenen Packungsgrößen von Medikamenten.
Zu 1) SELECT DISTINCT COUNT (Bezeichnung) ist doch sicherlich im Standard SQL nicht möglich, oder? Ich darf KEIN MySQL verwenden.
Und bei 2) bekomme ich schon gar keinen Ansatz mehr hin. Diese Aufgaben sehen so einfach aus, ich komme aber nicht weiter. Kann mir jemand von Euch BITTTE helfen? Ich bin dankbar für jeden Tip!!
Viele lernwütige Grüße ,
Vanessa
Seite 1 von 1
Hilfe Bitte! Sql-probleme
Anzeige
#2
geschrieben 09. Oktober 2005 - 13:24
Du kriegst SELECT DISTINCT COUNT (Bezeichnung) hin, aber SELECT DISTINCT COUNT (Packungsgröße) nicht?
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
#3
geschrieben 10. Oktober 2005 - 09:14
Hallo Vanessa,
mit der GroupBy Klausel funktioniert das recht gut:
Zu 1.
Zu 2.
mit der GroupBy Klausel funktioniert das recht gut:
Zu 1.
SELECT Bezeichnung, Count(Bezeichnung) AS Anzahl FROM Medikament GROUP BY Bezeichnung
Zu 2.
SELECT Packungsgroesse, Count(Packungsgroesse) AS Anzahl FROM Medikament GROUP BY Packungsgroesse
#4
geschrieben 18. Oktober 2005 - 08:08
Hmm, ich glaube das es möglich ist DISTINCT zu verwenden. Ich weiß zwar nicht was für dich Standard SQL ist, aber mehr oder weniger wird das wohl damit zu tun haben, welchen Datenbankserver du installiert hast. Mit dem MS SQL Server geht´s aufjedenfall auch, wie es mit dem Rest aussieht, weiß ich nicht.
Rika hat schon recht, beide Fragen sind im Prinzip gleich.
Rika hat schon recht, beide Fragen sind im Prinzip gleich.
Dieser Beitrag wurde von MaliMaster bearbeitet: 18. Oktober 2005 - 08:08
#5
geschrieben 18. Oktober 2005 - 13:17
@MaliMaster
Ein DISTINCT auf eine Count-Funktion (die ja nur eine Zahl zurückliefert) bringt nichts.
Hab dir mal eine Access-DB mit 'nem Beispiel angehängt.
Grüße
Ein DISTINCT auf eine Count-Funktion (die ja nur eine Zahl zurückliefert) bringt nichts.
Hab dir mal eine Access-DB mit 'nem Beispiel angehängt.
Grüße
Angehängte Datei(en)
-
Medikament.zip (16,98K)
Anzahl der Downloads: 58
Dieser Beitrag wurde von constructor bearbeitet: 19. Oktober 2005 - 11:19
#6
geschrieben 18. Oktober 2005 - 15:56
DISTINCT sorgt für Duplikatelimination.
GROUPBY gruppiert Datensätze nach einem Datenfeld, auf diesem existieren dann keine Duplikate mehr.
Count() zählt Datensätze.
Bei der originalen Aufgabenstellung war zunächst Duplikate zu elimieren und die Ergebnisse zu zählen.
Das DISTINCT wird _vor_ dem Count() ausgeführt, da sich Distinct auf die Projektion mit SELECT bezieht, während Count erst auf dieser Projektion arbeitet. Zumindest laut SQL-Standard.
GROUPBY gruppiert Datensätze nach einem Datenfeld, auf diesem existieren dann keine Duplikate mehr.
Count() zählt Datensätze.
Bei der originalen Aufgabenstellung war zunächst Duplikate zu elimieren und die Ergebnisse zu zählen.
Das DISTINCT wird _vor_ dem Count() ausgeführt, da sich Distinct auf die Projektion mit SELECT bezieht, während Count erst auf dieser Projektion arbeitet. Zumindest laut SQL-Standard.
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
- ← Programmieren Einer Registrierformular
- Programmierung
- [turbo Pascal] Funktionsaufruf Vor -deklaration →
Thema verteilen:
Seite 1 von 1