UNIQUE in SQL

Alles zum SQL-Dialekt

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

UNIQUE in SQL

Beitrag von AUGE_OHR »

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
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: UNIQUE in SQL

Beitrag von georg »

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 S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Antworten