SQl Abfrage mit COUNT etc

Hallo Liebe User,

ich habe kaum Erfahrung mit SQL, daher bräuchte ich Hilfe bzgl. dieser Aufgabe:

Gegeben sind 3 Tabellen:

Tabelle 1: „Artikel“ mit bspw:
Artikel_id ,
Artikel_Name,

Tabelle 2: „Kategorie“ mit bspw:
Kategorie_id,
Kategorie_Name,
categorie_parent

Tabelle 3: „Artikel_Kategorie“ mit:
Artikel_Kategorie_id,
fk_Artikel_id,
fk_Kategorie_id.

  1. Kann mir jemand die Beziehungen zwischen diesen 3 Tabellen erklären? Warum wird denn zusätzlich die 3. Tabellle erzeugt?

  2. Ich möchte gerne Wissen:

  • Wie viel Artikel existieren,
  • Wie viel Hauptkategorien und Unterkategorien existieren,
  • Die Unterkategien den jeweiligen Hauptkategorien zuordnen-
  • Wie viele Artikel existieren in der jeweiligen Haupt und Unterkategorie
    (Die Anzahl bzw. Summe).

Wie würde das denn als verschachtelte SQL Abfrage aussehen?

Ich bin blutiger Anfäger daher würde ich mich eine schnelle Hilfe sehr sehr sehr freuen!

Viele Grüße,
Water

Moin, water,

  1. Kann mir jemand die Beziehungen zwischen diesen 3 Tabellen
    erklären? Warum wird denn zusätzlich die 3. Tabellle erzeugt?

wenn ein Artikel nur einer Kategorie angehören könnte, dann gäbe es nur die Beziehung

 Artikel Kategorie,

das ließe sich mit einem Attribut Artkel.FS_Kategorie erledigen. Offensichtlich sitzt aber irgendwo ein Fachmann, der weiß, dass ein Artikel mehreren Kategorien zugeordnet werden kann:

 Artikel \> Kategorie.

Das müssen wir halt glauben und die technische Lösung anbieten:

 Artikel \> Artikel\_Kategorie Kategorie,

weil nur so Platz für die FS-Attribute zu schaffen ist, in denen die Beziehungen abgebildet werden.

  1. Ich möchte gerne Wissen:
  • Wie viel Artikel existieren,

Nutze Count.

  • Wie viel Hauptkategorien und Unterkategorien existieren,

Nutze Count und Group by.

  • Die Unterkategien den jeweiligen Hauptkategorien zuordnen-

Das verstehe ich nicht.

  • Wie viele Artikel existieren in der jeweiligen Haupt und
    Unterkategorie

Nutze Count und Group by.

Wenn ich die Lösungen hinschreibe, lernst Du gar nichts. Erschrick also nicht über die „mangelnde“ Hilfe, sondern versuch erstmal zu spielen. Bau Dir dazu erstmal die passenden Views in Form von flat files; aus denen springen Dich die Ergebnisse beinahe an.

Aus dem bisherigen Datenmodell geht übrigens nicht hervor, ob

  • jede Kategorie Unterkategorien hat
  • dem Artikel nur eine Unterkategorie zugeordnet wird oder wahlweise auch die Kategorie.

Da sind wohl noch klärende Gespräche mit dem Fachmann resp. Auftraggeber nötig.

Gruß Ralf

Hallo Liebe User,

ich habe kaum Erfahrung mit SQL, daher bräuchte ich Hilfe
bzgl. dieser Aufgabe:

Gegeben sind 3 Tabellen:

Tabelle 1: „Artikel“ mit bspw:
Artikel_id ,
Artikel_Name,

Tabelle 2: „Kategorie“ mit bspw:
Kategorie_id,
Kategorie_Name,
categorie_parent

Tabelle 3: „Artikel_Kategorie“ mit:
Artikel_Kategorie_id,
fk_Artikel_id,
fk_Kategorie_id.

  1. Kann mir jemand die Beziehungen zwischen diesen 3 Tabellen
    erklären? Warum wird denn zusätzlich die 3. Tabellle erzeugt?

Beispiel Telefon Listen
1 Liste mit Namen (tabelle 1)
1 Liste mit Nummern (tabelle 2)

1 Liste für die Zuordnung welche Nummern zu welcher Person gehören.
(tabelle 3)

  1. Ich möchte gerne Wissen:
  • Wie viel Artikel existieren,

SELECT COUNT() as AnzArtikel FROM Artikel

  • Wie viel Hauptkategorien und Unterkategorien existieren,

SELECT COUNT(categorie_parent) as AnzSubKategorien FROM Kategorie
WHERE categorie_parent IS NULL

  • Die Unterkategien den jeweiligen Hauptkategorien zuordnen-

SELECT categorie_parent,COUNT(Kategorie_id) as AnzSubInKategorien FROM Kategorie
WHERE categorie_parent NOT NULL GROUP by categorie_parent

  • Wie viele Artikel existieren in der jeweiligen Haupt und
    Unterkategorie

SELECT COUNT(Artikel.Artikel_id)as AnzahlArtikelProMainKat FROM Artikel
JOIN Artikel_Kategorie_id ON Artikel.Artikel_id = Artikel_Kategorie.fk_Artikel_id
JOIN Kategorie ON Kategorie.Kategorie_id = Artikel_Kategorie.fk_Kategorie_id
WHERE Kategorie.categorie_parent IS NULL
GROUP by Kategorie.Kategorie_id

SELECT COUNT(Artikel.Artikel_id)as AnzahlArtikelProSubKat FROM Artikel
JOIN Artikel_Kategorie_id ON Artikel.Artikel_id = Artikel_Kategorie.fk_Artikel_id
JOIN Kategorie ON Kategorie.Kategorie_id = Artikel_Kategorie.fk_Kategorie_id
WHERE Kategorie.categorie_parent NOT NULL
GROUP by Kategorie.Kategorie_id

ohne gewehr ob das mit NULL oder NOT NULL geht.

sollen nur beispiele sein wie du vorgehen könntest .

(Die Anzahl bzw. Summe).

Wie würde das denn als verschachtelte SQL Abfrage aussehen?

Ich bin blutiger Anfäger daher würde ich mich eine schnelle
Hilfe sehr sehr sehr freuen!

sorry , keine lust heute JOINS zu erklären

Viele Grüße,
Water

viel erfolg