Autor Beitrag
D. Annies
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Do 06.07.06 12:22 
hi, Delpher,

ausblenden SQL-Anweisung
1:
2:
3:
SELECT count(*) as B.Bücheranzahl, B.klasse, A.KLK FROM Buecher.dbf B, Ausleihsatz.dbf A where B.TITEL IS NOT NULL and (B.KLASSE = A.KLASSE) and ((B.KLASSE like '5%') or     
  (B.Klasse like '6%') or (B.Klasse like '7%') or (B.klasse like '8%') or   
  (B.klasse) '9%') or (B.klasse like '1%')) GROUP BY B.KLASSE;


Ich bekomme leider eine Fehlermeldung: .. ein einfaches Feld ...

Wer kann helfen??

Danke, Detlef A.

Moderiert von user profile iconjasocul: SQL-Tags hinzugefügt
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 06.07.06 12:39 
Wenn du das Ganze vernünftig formatieren würdest, hättest du den Fehler schon selbst gefunden!
ausblenden SQL-Anweisung
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
SELECT count(*) as B.Bücheranzahl, B.klasse, A.KLK 
  FROM Buecher.dbf B, Ausleihsatz.dbf A 
 where B.TITEL IS NOT NULL 
   and (B.KLASSE = A.KLASSE) 
   and ((B.KLASSE like '5%') or     
        (B.Klasse like '6%') or 
        (B.Klasse like '7%') or 
        (B.klasse like '8%') or
        (B.klasse) '9%') or 
        (B.klasse like '1%')) 
  GROUP BY B.KLASSE;

Siehst du ihn?
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Do 06.07.06 12:43 
Hallo,

falls Du den Fehler nicht findest: In einer Group-By-Anweisung müssen alle nicht aggregierte Felder, die im Select vorkommen, angegeben werden.

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 06.07.06 12:52 
:autsch:
Das ist nicht der Fehler. Das sollte schon so funktionieren, wie es da steht.
Jetzt stehen die LIKEs schon untereinander. Da muss man doch sehen, dass das einmal fehlt, oder? :gruebel:

Liegt das an der Hitze, oder warum bin ich heute so merkwürdig drauf?
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Do 06.07.06 12:56 
Hi, Peter und Smiegel,

ja, es liegt wohl an der Hitze!!

Danke, Detlef

P.S. Leider muss ich den Befehl für meine Zwecke in einer Zeile stehen haben.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 06.07.06 13:00 
user profile iconD. Annies hat folgendes geschrieben:
P.S. Leider muss ich den Befehl für meine Zwecke in einer Zeile stehen haben.

Bastelst du den dynamisch in einem String zusammen? Egal. Zum überprüfen kann man sich den trotzdem mal kurz in einem Editor formatieren. Hätte dir bestimmt 20 Minuten Zeit gespart. :wink:
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Do 06.07.06 13:02 
Hi, Smiegel,

das fehlende like habe ich ergänzt, aber der Fehler ist doch noch da:

Wenn ein Group by existiert, muss sich jedes einfache Feld
in den Projektoren im Group by befinden.

Danke für weitere Hilfe, Detlef
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 06.07.06 13:05 
Stimmt. Habe ich mindestens zweimal übersehen. Muss wirklich an der Hitze liegen. Sorry Smiegel, du hattest auch Recht.
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Do 06.07.06 23:26 
Hi,

habe nichts mehr gehört, wer kann denn noch helfen?

Gruß, Detlef
opfer.der.genauigkeit
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754
Erhaltene Danke: 1



BeitragVerfasst: Fr 07.07.06 01:12 
Ich zitiere mal :)

user profile iconsmiegel hat folgendes geschrieben:
Hallo,

falls Du den Fehler nicht findest: In einer Group-By-Anweisung müssen alle nicht aggregierte Felder, die im Select vorkommen, angegeben werden.


Im Klartext:
ausblenden SQL-Anweisung
1:
SELECT CustomerID, CustomerName FROM T_Customer GROUP BY CustomerID					


Geht nicht.

ausblenden SQL-Anweisung
1:
SELECT CustomerID, CustomerName FROM T_Customer GROUP BY CustomerID, CustomerName					


Geht.

In einer SQL-Anweisung mit Group-By ist die Auswahlliste der angegebenen Elemente beschränkt.
So kann man Gruppierungsspalten & Ausdrücke die nur einen Wert z.B. Aggregatfunktionen, bei denen Spaltennamen
als Parameter verwendet wird, dafür benutzen. Die Ausdrücke *spick* nennt man dann Vektoraggregate.
Mit ntext, text, bit, image etc. funktioniert das im Übrigen nicht.

Ein weiteres Beispiel um das zu erläutern:
ausblenden SQL-Anweisung
1:
SELECT PRIMARYID, SUM(Prize + Postage) AS Amount FROM T_DONTKNOW ORDER BY PRIMARYID					


PRIMARYID ist eine mögliche Gruppierungsspalte und SUM ist in diesem Fall unsere Aggregatfunktion.

Ist das Group-By notwendig?
Reicht Order-By nicht aus? Macht die Sache einfacher.

MfG

_________________
Stellen Sie sich bitte Zirkusmusik vor.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 07.07.06 06:47 
Ich dachte, dass du mit deiner eigenen Aussage:
user profile iconD. Annies hat folgendes geschrieben:
Wenn ein Group by existiert, muss sich jedes einfache Feld in den Projektoren im Group by befinden.

Schon das Problem gelöst hättest. Dem war wohl nicht so. :?
Um die Ausführungen von user profile iconopfer.der.genauigkeit an deinem Statement zu vollziehen, müsste es dann so aussehen:
ausblenden SQL-Anweisung
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
SELECT count(*) as B.Bücheranzahl, B.klasse, A.KLK 
  FROM Buecher.dbf B, Ausleihsatz.dbf A 
 where B.TITEL IS NOT NULL 
   and (B.KLASSE = A.KLASSE) 
   and ((B.KLASSE like '5%') or     
        (B.Klasse like '6%') or 
        (B.Klasse like '7%') or 
        (B.klasse like '8%') or
        (B.klasse like '9%') or 
        (B.klasse like '1%')) 
  GROUP BY B.klasse, A.KLK


Zuletzt bearbeitet von jasocul am Fr 07.07.06 11:07, insgesamt 1-mal bearbeitet
p!nhead
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35



BeitragVerfasst: Fr 07.07.06 10:14 
user profile iconjasocul hat folgendes geschrieben:

ausblenden SQL-Anweisung
1:
GROUP BY , B.klasse, A.KLK					


auch nich schlecht ;)

Der arme Kerl versteht jetzt wahrscheinlich gar nichts mehr :D
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 07.07.06 11:07 
Sorry. Habs korrigiert.
D. Annies Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1843

windows 7
D6 Enterprise, D7 Pers und TD 2006
BeitragVerfasst: Fr 07.07.06 21:21 
Danke, liebe Helfer,

der Knackpunkt war der, dass nach group by eben zwei (oder mehr) Felder stehen müssen!

Jetzt habe ich auch das verstanden. Tja, alles ist leicht, wenn man es weiß...

Bis auf weiteres,
Detlef A.