WinFuture-Forum.de: Hilfe Bitte! Sql-probleme - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Hilfe Bitte! Sql-probleme


#1 Mitglied ist offline   Nessy 

  • Gruppe: Mitglieder
  • Beiträge: 1
  • Beigetreten: 09. Oktober 05
  • Reputation: 0

geschrieben 09. Oktober 2005 - 09:15

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 :thumbsup: ,
Vanessa
0

Anzeige



#2 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

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.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#3 Mitglied ist offline   constructor 

  • Gruppe: aktive Mitglieder
  • Beiträge: 112
  • Beigetreten: 18. April 05
  • Reputation: 0

geschrieben 10. Oktober 2005 - 09:14

Hallo Vanessa,

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

0

#4 Mitglied ist offline   MaliMaster 

  • Gruppe: aktive Mitglieder
  • Beiträge: 907
  • Beigetreten: 10. April 02
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Deutschland

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.

Dieser Beitrag wurde von MaliMaster bearbeitet: 18. Oktober 2005 - 08:08

0

#5 Mitglied ist offline   constructor 

  • Gruppe: aktive Mitglieder
  • Beiträge: 112
  • Beigetreten: 18. April 05
  • Reputation: 0

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

Angehängte Datei(en)


Dieser Beitrag wurde von constructor bearbeitet: 19. Oktober 2005 - 11:19

0

#6 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

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.
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.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0