Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Hilfe bei einer SQL Abfrage für Access (https://www.delphipraxis.net/204135-hilfe-bei-einer-sql-abfrage-fuer-access.html)

schaumermal 27. Apr 2020 19:12

Datenbank: Access • Version: 2010 • Zugriff über: ADO

Hilfe bei einer SQL Abfrage für Access
 
Hallo zusammen,

haben wir hier einen Access Experten, der mir vielleicht bei folgendem SQL Problem helfen kann?

Ich habe 2 Tabellen:

Kunden:
KDNummer
Name


Vorgang:
KDNummer
VorgangNr


Nun möchte ich per SQL eine Abfrage erstellen die mir pro Kunde (aus Tabelle Kunde) die Anzahl der gefundenen Vorgänge (aus Tabelle Vorgang) liefert:

Also in etwa:
Müller|5
Maier|7
Schulze|3

Ich muss also die beiden Tabellen joinen UND aus der 2. Tabelle den Count von VorgangNr erhalten. :(
Kann mir hier jemand helfen?

Vielen Dank im voraus :-D

Chemiker 27. Apr 2020 19:52

AW: Hilfe bei einer SQL Abfrage für Access
 
Hallo,

hier mal ein Link vielleicht ist was brauchbares dabei:
https://www.bing.com/videos/search?q...F&&FORM=VRDGAR

Bis bald Chemiker

Delphi.Narium 27. Apr 2020 19:55

AW: Hilfe bei einer SQL Abfrage für Access
 
SQL-Code:
select k.name, count(*) as anzahl
from kunden k
inner join vorgang v
on k.kdnummer = v.kdnummer
group by k.name
order by k.name
Aber: Mehrere Kunden gleichen Namens können hierbei aber nicht mehr auseinander gehalten werden.

Bei der Ausgabe wäre es besser, auch die Kundennummer mit auszugeben:
SQL-Code:
select k.kdnummer, k.name, count(*) as anzahl
from kunden k
inner join vorgang v
on k.kdnummer = v.kdnummer
group by k.kdnummer, k.name
order by k.name, k.kdnummer
Achso: ungetestet hingedaddelt.

schaumermal 27. Apr 2020 20:21

AW: Hilfe bei einer SQL Abfrage für Access
 
Hi,

Sorry ich hatte die entscheidende Information gar nicht gegeben :cry:

In der 2. Tabelle kann die Vorgangsnummer für einen Kunden mehrfach vorkommen vorkommen.
Ich möchte aber NUR die Anzahl der unterschiedlichen Vorgangsnummern pro Kunde haben (daher dinstinct) und NICHT die Gesamtanzahl.

Hast Du dafür auch eine Lösung?

jobo 27. Apr 2020 22:18

AW: Hilfe bei einer SQL Abfrage für Access
 
Im Prinzip geht es so:

Delphi-Quellcode:
select custno,
       count(distinct actionno) as actionnocount
  from countcustnoactionno
 group by custno
Ich weiß nicht, ob Access das kann.

Wenn es in Access nicht geht, musst Du die Schritte unterteilen und erst die eindeutigen Vorgänge selektieren und dann zählen, also 2 SQL verschachteln.

p80286 27. Apr 2020 22:26

AW: Hilfe bei einer SQL Abfrage für Access
 
Falls es nicht klappt versuch es mit [DBName].[FeldName]. Access ist da manchmal eigen.

Gruß
K-H

schaumermal 28. Apr 2020 08:50

AW: Hilfe bei einer SQL Abfrage für Access
 
Zitat:

Zitat von jobo (Beitrag 1462989)
Im Prinzip geht es so:

Delphi-Quellcode:
select custno,
       count(distinct actionno) as actionnocount
  from countcustnoactionno
 group by custno
Ich weiß nicht, ob Access das kann.

Wenn es in Access nicht geht, musst Du die Schritte unterteilen und erst die eindeutigen Vorgänge selektieren und dann zählen, also 2 SQL verschachteln.

Genau darum geht es mir ja. Ich bekommen diese Verschachtelung mit meinen oben genannten Tabellen nicht hin :(

p80286 28. Apr 2020 10:05

AW: Hilfe bei einer SQL Abfrage für Access
 
Zitat:

Zitat von schaumermal (Beitrag 1462997)
Genau darum geht es mir ja. Ich bekommen diese Verschachtelung mit meinen oben genannten Tabellen nicht hin :(

Und was heißt das konkret?
Gibt es eine Fehlermeldung?

Gruß
K-H

markus888 28. Apr 2020 10:33

AW: Hilfe bei einer SQL Abfrage für Access
 
Code:
SELECT k.kdnummer
   ,k.name
   ,V.anzahl
FROM kunden k
INNER JOIN (
   SELECT kdnummer
      ,Count(*) AS Anzahl
   FROM vorgang
   GROUP BY kdnummer
   ) V ON V.kdnummer = k.kdnummer
LG M

schaumermal 28. Apr 2020 11:00

AW: Hilfe bei einer SQL Abfrage für Access
 
@markus888

Vielen Dank für das SQL Statement.
Jedoch wird hierbei nicht berücksichtigt, dass ich NUR die Anzahl der unterschiedlichen Vorgangsnummern (also einen distinct count) pro Kunde haben möchte und NICHT die Gesamtanzahl.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:47 Uhr.
Seite 1 von 2  1 2   

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