Seite 2 von 3

Verfasst: 12.10.2007 13:16
von Fluid Byte
Sorry, hab mich schlecht ausgedrückt. Ich meine es sollen nur alle SeatID's aufgelistet werden die nur einen Wert in der gleichnamigen Spalte haben.

Code: Alles auswählen

SELECT SeatID
FROM table_main
GROUP BY SeatID
HAVING COUNT(*)=1;

Verfasst: 12.10.2007 13:26
von bobobo
ää .. aha .. access fehlermeldet da einen korrekten fehler (ohne
aggregation keine gruppierung und andersrum)



ich hoffe du weisst was du willst .. ich weiss es nämlich nicht. :freak:

Verfasst: 12.10.2007 13:33
von Fluid Byte
Ich meine das Ich in diesem Abfrageblock

Code: Alles auswählen

SELECT SeatID
FROM table_main
GROUP BY SeatID
HAVING COUNT(*)=1;
weitere Spalten angeben will die mit auf gelistet werden.

Beispiel:

Code: Alles auswählen

SELECT SeatID, txtSpalte1, txtSpalte2, ...
FROM table_main
GROUP BY SeatID
HAVING COUNT(*)=1;
Muss ich da zwei Anfagen kombinieren?

Verfasst: 12.10.2007 13:56
von bobobo
wart ma

Verfasst: 12.10.2007 18:56
von bobobo
denk schon ..

groupierte Abfragen gehen halt nur mit aggregationen
(sagt ja auch access)

und nun kommts drauf an was da noch zusätzlich in den Spalte stehen soll.
Einträge aus der Tabelle selber? wenn ja: welche? wenn nein: tun es da fixe Einträge? wenn nein: liegen die auch in Tabellen?

Verfasst: 18.10.2007 10:21
von Fluid Byte
bobobo hat geschrieben:und nun kommts drauf an was da noch zusätzlich in den Spalte stehen soll.
Daten aus einer Text Spalte.
bobobo hat geschrieben:Einträge aus der Tabelle selber?
Diese Daten kommen aus der selben Tabelle, ja.

Verfasst: 18.10.2007 12:39
von bobobo
Und gibt es eine Regel welcher Eintrag das sein soll?

Verfasst: 18.10.2007 12:53
von Fluid Byte
bobobo hat geschrieben:Und gibt es eine Regel welcher Eintrag das sein soll?
Ach Krätze, jetzt hast du mich schon wieder verunsichert.

* nachdenk *

Also durch

Code: Alles auswählen

GROUP BY SeatID
HAVING COUNT(*)=1;
fallen ja alle Elemente / Reihen weg die unter derselben SeatID mehere Einträge haben. Alle SeatID's die jetzt übrig bleiben sind somit einmalig. Der Text aus Spalte XY soll sich jetzt natürlich auf die SeatID beziehen die übrig bleibt.

Warte, zu kompliziert ausgedrückt...

Will sagen, es soll der Text angezeigt werden der neben SeatID stehen würde wenn man sich die Tabelle ganz normal ansieht. Ohne Abfrage, ohne alles, nur Doppelclick auf die Tabelle (zumindest in Access).

Verfasst: 18.10.2007 13:19
von bobobo
moment mal..

lies dir in der zwischenzeit mal http://de.wikipedia.org/wiki/Normalisierung_(Datenbank) durch

Verfasst: 18.10.2007 13:29
von bobobo
so

kommst du mit so 'ner konstruktion klar?

Code: Alles auswählen

Select SeatID,Wert,Text from table_main where SeatID  in (
SELECT SeatID
FROM table_main
GROUP BY SeatID 
HAVING COUNT(*)=1)