UNIQUE in SQL

Alles zum SQL-Dialekt

Moderator: Moderatoren

UNIQUE in SQL

Beitragvon AUGE_OHR » Do, 02. Apr 2015 22:41

hi

im Thread http://www.xbaseforum.de/viewtopic.php?f=24&t=8529& fragte ich nach eine DBF / Index Lösung

mit dem Index
Code: Alles auswählen
FAKTU->KDNR + FAKTU->ARTNR
und einen SCOPE auf die Kundennummer komme ich an alle Artikel die der Kunde gekauft hat
Code: Alles auswählen
   SEEK(FAKTU->KDNR)
   IF FOUND()
       SET SCOPE TO FAKTU->KDNR
       Browse()
       SET SCOPE TO
   ENDIF
... aber auch "mehrfach" Artikel die er jedes mal kauft.

Frage : wie lautet die SQL Syntax wenn ich alle Artikel des Kunden haben will aber nur eine Row für einen Artikel ( ARTNR ) mit einer Summe Anzahl/Preis ?
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10063
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: UNIQUE in SQL

Beitragvon georg » Fr, 03. Apr 2015 14:42

Hallo, Jimmy -


es gibt verschiedene Ansätze.

Standardmässig bildet SQL eine 1:n Beziehung auch mit n Zeilen ab.

Möglichkeit 1: bilde die Syntax wie bisher ab, also mit zwei SELECT Anweisungen (das Projekt "prepared statement" liegt leider auf Eis, das wäre dafür fantastisch geeignet).

Möglichkeit 2: missbrauche (und Du weisst sicher, was auf Missbrauch in der Programmierung steht?) die Gruppenfunktionen, etwa in dieser Art:

Code: Alles auswählen
SELECT kunde, artikel, count(*) FROM faktu GROUP BY kunde, artikel ORDER BY kunde, artikel


Und: "UNIQUE" in SQL hat die gleiche Bedeutung wie PRIMARY KEY, und diese Situation ist in Deinem Beispiel nicht gegeben, daher ist UNIQUE nicht sinnvoll im Zusammenhang mit Deiner Frage.
Liebe Grüsse aus der Eifel,

Georg
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1749
Registriert: Fr, 08. Feb 2008 21:29


Zurück zu SQL (Sprache)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron