AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Hilfe bei einer SQL Abfrage für Access

Hilfe bei einer SQL Abfrage für Access

Ein Thema von schaumermal · begonnen am 27. Apr 2020 · letzter Beitrag vom 28. Apr 2020
Antwort Antwort
Seite 1 von 2  1 2   
schaumermal

Registriert seit: 26. Apr 2006
Ort: Bad Vilbel
47 Beiträge
 
Delphi 11 Alexandria
 
#1

Hilfe bei einer SQL Abfrage für Access

  Alt 27. Apr 2020, 19:12
Datenbank: Access • Version: 2010 • Zugriff über: ADO
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
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Hilfe bei einer SQL Abfrage für Access

  Alt 27. Apr 2020, 19:52
Hallo,

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

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.400 Beiträge
 
Delphi 7 Professional
 
#3

AW: Hilfe bei einer SQL Abfrage für Access

  Alt 27. Apr 2020, 19:55
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.
  Mit Zitat antworten Zitat
schaumermal

Registriert seit: 26. Apr 2006
Ort: Bad Vilbel
47 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Hilfe bei einer SQL Abfrage für Access

  Alt 27. Apr 2020, 20:21
Hi,

Sorry ich hatte die entscheidende Information gar nicht gegeben

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?
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Hilfe bei einer SQL Abfrage für Access

  Alt 27. Apr 2020, 22:18
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.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Hilfe bei einer SQL Abfrage für Access

  Alt 27. Apr 2020, 22:26
Falls es nicht klappt versuch es mit [DBName].[FeldName]. Access ist da manchmal eigen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
schaumermal

Registriert seit: 26. Apr 2006
Ort: Bad Vilbel
47 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Hilfe bei einer SQL Abfrage für Access

  Alt 28. Apr 2020, 08:50
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
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Hilfe bei einer SQL Abfrage für Access

  Alt 28. Apr 2020, 10:05
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
markus888

Registriert seit: 23. Dez 2018
46 Beiträge
 
#9

AW: Hilfe bei einer SQL Abfrage für Access

  Alt 28. Apr 2020, 10:33
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
  Mit Zitat antworten Zitat
schaumermal

Registriert seit: 26. Apr 2006
Ort: Bad Vilbel
47 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Hilfe bei einer SQL Abfrage für Access

  Alt 28. Apr 2020, 11:00
@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.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 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