Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Query Problem mit Summieren, FIltern und Gruppieren (https://www.delphipraxis.net/181316-query-problem-mit-summieren-filtern-und-gruppieren.html)

Starworld1000 5. Aug 2014 19:44

Datenbank: SQL • Version: 6 • Zugriff über: Query

Query Problem mit Summieren, FIltern und Gruppieren
 
Hallo zusammen,

ich will mit einem Query, Gruppierungen und Summierungen vornehmen. Dabei setze ich noch einen Filter ein. Durch das Filtern wird aber nicht mehr sauber gruppiert.

Code:
SELECT ZIEL,COUNT(NUMMER) AS ANZ,POS FROM TABLE1 GROUP BY ZIEL,
       AKTPOS HAVING POS NOT LIKE ('''+'EGU'+''') ORDER BY ANZ DESC
Soweit läuft alles, jedoch dürfen keine doppelten Ziele vorhanden sein

Kann mir jemand helfen bei meinem Problemchen :oops:

Viele Grüße
StarWorld1000

Uwe Raabe 5. Aug 2014 21:37

AW: Query Problem mit Summieren, FIltern und Gruppieren
 
Bin mir nicht sicher, ob es das ist:

Delphi-Quellcode:
SELECT ZIEL,COUNT(NUMMER) AS ANZ,POS
FROM TABLE1 
WHERE POS NOT LIKE ('''+'EGU'+''')
GROUP BY ZIEL, POS
ORDER BY ANZ DESC

Dejan Vu 6. Aug 2014 07:52

AW: Query Problem mit Summieren, FIltern und Gruppieren
 
Ach, jetzt versehe ich es:
ZielPosANZ
113
125
212

Ziel ist 2x vorhanden, aber er will es nur 1x. Was soll denn in der einen Zeile im Resultate, in der das Ziel '1' steht, an der Stelle 'Pos' stehen?

ZielPosANZ
1??
2??

p80286 6. Aug 2014 10:34

AW: Query Problem mit Summieren, FIltern und Gruppieren
 
Zitat:

Zitat von Dejan Vu (Beitrag 1267599)
Ach, jetzt versehe ich es:

Wenn Du damit recht haben solltest, dann hat POS nichts in group by zu suchen.

Weiterhin sollte er Parameter nutzen, das
Code:
POS NOT LIKE ('''+'EGU'+''')
ist nicht so optimal und warum HAVING statt WHERE genutzt wird, erschließt sich mir auch nicht so direkt.

Gruß
K-H

Dejan Vu 6. Aug 2014 11:22

AW: Query Problem mit Summieren, FIltern und Gruppieren
 
Zitat:

Zitat von p80286 (Beitrag 1267654)
Wenn Du damit recht haben solltest, dann hat POS nichts in group by zu suchen.

Ist mir auch klar. Ich hab die Query ja nicht gemacht. :stupid: Daher ja meine Frage. Kann ja sein, das er min(pos), max(pos) oder sonst was zu stehen haben will.

gmc616 6. Aug 2014 16:00

AW: Query Problem mit Summieren, FIltern und Gruppieren
 
Wenn du keine doppelten Ziele haben willst, darfst nicht über POS gruppieren.

auch verstehe ich das nicht: POS NOT LIKE ('''+'EGU'+''')

Damit LIKE überhaupt sinn macht, sollte man dann nicht Joker verwenden ?? :gruebel: Gut das DBMS "SQL" kenne ich nicht ^^

POS NOT LIKE (''%EGU%'')

oder steht in POS etwa direkt 'EGU', dann so:

NOT (POS =''EGU'')

ich glaube du möchtestes das (wenn Ziel nicht doppelt herauskommen darf):
Code:
SELECT
    ZIEL,COUNT(NUMMER) AS ANZ
FROM
    TABLE1 
WHERE
    NOT (POS=''EGU'')
GROUP BY ZIEL
ORDER BY ANZ DESC

Dejan Vu 6. Aug 2014 16:20

AW: Query Problem mit Summieren, FIltern und Gruppieren
 
Zitat:

Zitat von gmc616 (Beitrag 1267760)
oder steht in POS etwa direkt 'EGU', dann so: NOT (POS =''EGU'')

Leicht OT: "LIKE 'FOO'" ignoriert bei einigen RDBMS ('SQL' ist vielleicht eines davon ;-) ) die Groß/Kleinschreibung.

Uwe Raabe 6. Aug 2014 17:26

AW: Query Problem mit Summieren, FIltern und Gruppieren
 
Zitat:

Zitat von Dejan Vu (Beitrag 1267770)
Leicht OT: "LIKE 'FOO'" ignoriert bei einigen RDBMS ('SQL' ist vielleicht eines davon ;-) ) die Groß/Kleinschreibung.

SQL Server berücksichtigt bei LIKE die Collation für die betreffende Spalte.

mkinzler 7. Aug 2014 06:52

AW: Query Problem mit Summieren, FIltern und Gruppieren
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1267779)
Zitat:

Zitat von Dejan Vu (Beitrag 1267770)
Leicht OT: "LIKE 'FOO'" ignoriert bei einigen RDBMS ('SQL' ist vielleicht eines davon ;-) ) die Groß/Kleinschreibung.

SQL Server berücksichtigt bei LIKE die Collation für die betreffende Spalte.

Wenn er den meint.

Dejan Vu 7. Aug 2014 07:05

AW: Query Problem mit Summieren, FIltern und Gruppieren
 
Zitat:

Zitat von mkinzler (Beitrag 1267815)
Zitat:

Zitat von Uwe Raabe (Beitrag 1267779)
Zitat:

Zitat von Dejan Vu (Beitrag 1267770)
Leicht OT: "LIKE 'FOO'" ignoriert bei einigen RDBMS ('SQL' ist vielleicht eines davon ;-) ) die Groß/Kleinschreibung.

SQL Server berücksichtigt bei LIKE die Collation für die betreffende Spalte.

Wenn er den meint.

Auch, wenn er den nicht meint. Die LIKE-Funktion des SQL-Servers arbeitet immer gleich, unabhängig davon, ob der TE diesen einsetzt oder nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz