Seite 1 von 1

UNIQUE in SQL

Verfasst: Do, 02. Apr 2015 23:41
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 ?

Re: UNIQUE in SQL

Verfasst: Fr, 03. Apr 2015 15:42
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.