Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

UNIQUE in SQL

Alles zum SQL-Dialekt

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10518
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

UNIQUE in SQL

Beitrag von AUGE_OHR » Do, 02. Apr 2015 23: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

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

Re: UNIQUE in SQL

Beitrag von georg » Fr, 03. Apr 2015 15: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

Antworten