Mobile

SQL Erstellung von Abfragen

Dante2000

Commander
Registriert
Apr. 2011
Beiträge
2.963
Liebe CBler,

ich habe probleme bei eigentlich recht simplen SQL-Aufgaben. Ich konnte mich seit einigen Wochen nicht mehr damit beschäftigen, da ich auf Arbeit ausreichend zu tun gehabt habe und normalerweise nichts damit zu tun habe. Leider habe ich momentan ein totales Blackout.

Hier meine erste "Problemaufgabe":

Ich soll aus einer Tabelle (T_Kunden) alle Kundennachnamen die mit "B" beginnen anzeigen lassen. Dazu soll auch, nachdem der Nachname sortiert wurde, der Kundenvorname eingeblendet werden.

Die Tabelle T_Kunden besteht aus Name (Enthält den Nachnamen) und Vornamen.

Wie mache ich das am besten? Wir arbeiten mit einer Access-DB.

Ich habe bisher folgendes eingegeben, was aber nicht richtig funktioniert:

SELECT *
FROM T_Kunden
WHERE Nachname = 'B';
 
Hi,

SELECT `Nachname`, `Vorname`
FROM T_Kunden
WHERE `Nachname` LIKE 'B%'
ORDER BY `Nachname`

VG,
Mad
 
SELECT *
FROM T_Kunden
WHERE Nachname like 'B%'
ORDER BY Nachname

zu langsam :-(
 
Zuletzt bearbeitet: (zu langsam :-()
Die Lösung werde ich nicht posten. Schau dir 'LIKE' an. Du kannst nachdem Select statt einem * auch direkt Rows angeben.
 
Choceur schrieb:
Die Lösung werde ich nicht posten. Schau dir 'LIKE' an. Du kannst nachdem Select statt einem * auch direkt Rows angeben.

Du meinst vermutlich Columns nicht Rows.
Wenn er Rows angeben könnte wäre jede erdenkliche Definition von einer Where- und Order by-Klausel bedeutungslos ^^

Grüß,
 
Choceur schrieb:
Die Lösung werde ich nicht posten. Schau dir 'LIKE' an. Du kannst nachdem Select statt einem * auch direkt Rows angeben.

Lösung wurde eh schon gepostet ^^

aber mi ein wenig googlen hätte man das auch so rausgefunden.
Naja, heutzutage hat keiner mehr bock sich irgendwo einzuarbeiten.
 
Danke für die Hilfe. Scheinbar stimmt jedoch was mit der DB nicht, da ich nach Eingabe der obigen Befehle nur Vorname und name angezeigt bekomme, jedoch ohne Inhalt.

Ich danke euch trotzdem für die Antworten. Ich denke damit kann ich mich wieder einarbeiten.

@l_uk_e
Leider habe ich momentan nicht die ausreichende Zeit zum einarbeiten, da es heute noch fertig werden soll. Andere aus meiner Gruppen hatten dafür bereits 3 Wochen Zeit, ich habe allerdings heute erst die Aufgaben vom Lehrer bekommen. Prinzipiell habt ihr recht. ;)
 
Hi,

kannst du mal einen Screenshot von der Tabelle zeigen mit Inhalt? Und von exakt der Abfrage, die du benutzt hast?

VG,
Mad
 
Hier nochmal die Screenshots

Es geht meinem Lehrer nur um einen richtigen Lösungsweg, trotzdem wüsste ich schon gerne, weshalb es nicht funktioniert.
 

Anhänge

  • T_kunden.JPG
    T_kunden.JPG
    21,6 KB · Aufrufe: 148
  • Abfrage.JPG
    Abfrage.JPG
    11,1 KB · Aufrufe: 178
  • Fehler.JPG
    Fehler.JPG
    10,3 KB · Aufrufe: 194
Hi,

gibt es einen Nachnamen der mit "U" anfängt? In dem Ausschnitt sehe ich keinen...

VG,
Mad
 
Hi,
es gibt noch weitere Personen in der Liste. Darunter ist auch ein Hannes Unterberg und eine Person namens Uwe Ueberberg. Es gibt in der Liste nur 2 Personen deren Nachnamen mit dem Buchstaben U beginnen.
 
Hi,

poste deine Abfrage mal als Text hier rein. Sind das normale Hochkommata bei "name"? Oder sind das Accents? Falls Hochkommata: weglassen und nochmal testen.

VG,
Mad
 
Hier mein Text:
SELECT name, vname
FROM T_Kunden
WHERE name LIKE 'U%'
ORDER BY name;

Das entfernen der Kommata brachte auch keine Lösung.
 
Gut, danke für die Info. Ich werde nachher meinen Lehrer anschreiben, da in den restlichen Aufgaben Dinge erwartet werden, die ich nie beigebracht bekommen habe. Das fängt bereits mit der LIKE Abfrage an.

Danke für deine/eure Hilfe.
 
Es könnte am Tabellen Namen liegen. SQL hat teilweise Probleme mit "_" in Tabellen und Datenbanknamen.

Erstell mal eine neue Tabelle ohne "_"; z.B: "TKunden" und versuch es dann nochmal mit der Query.
 
Bringt leider auch nichts bei meiner DB. Ich habe meinen Lehrer angeschrieben, da ich vermute, das während meiner Krankheitsphase, die Datenbank bereits erweitert wurde und ich dementsprechend nicht mehr den aktuellen Stand der DB habe.
 
das ; am schluss macht nicht wirklich sinn, nimm das mal weg.
desweiteren mach im order als zweites auch den vname rein.

alternativ ersetzte das like durch
WHERE LEFT([name],1)='U'
 
In dem obigen Bild steht bei Dir
WHERE 'name' LIKE 'U%'
ORDER BY 'name'

Nimm die ' weg! Das versaut Dir die Abfrage, da er das als String und nicht als Name der Tabelle ansieht.
WHERE name LIKE 'U%'
ORDER BY name
 
Zurück
Oben