Delphi-PRAXiS
Seite 2 von 2     12   

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)

Delphi.Narium 28. Apr 2020 10:23

AW: Hilfe bei einer SQL Abfrage für Access
 
Ich verstehe Deine Aufgabenstellung nicht mehr, könntest Du sie bitte nocheinmal als komplette Frage, möglichst präzise, ausformulieren?
SQL-Code:
select k.kdnummer, k.name, count(*) as anzahl from kunden k,
(
  select distinct kdnummer, vorgangnr from vorgang
) v
where k.kdnummer = v.kdnummer
group by k.kdnummer, k.name
order by k.kdnummer, k.name
Keine Ahnung, ob Access mit dieser Syntax zurechtkommt (vermutlich aber ja).

schaumermal 28. Apr 2020 11:21

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

Ich habe 2 Tabellen (Kunden und Vorgang)

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. Jedoch möchte ich aus der Tabelle Vorgang nur die Anzahl der unterschiedlichen Vorgangsnummern haben. Mehrfach vorkommende Vorgangsnummern sollen nur einmal (distinct) gezählt werden:

Daten in der Tabelle
Tabelle Vorgang
Kd.-Nr. | Vorgang
4711 | 1
4711 | 2
0815 | 4
4711 | 3
4711 | 1
0815 | 4
4711 | 2


Als Ergebnis wünsche ich mir hier
4711 | 3
0815 | 1

Ich hoffe, so ist es verständlich :-D


EDIT:
Deine obige Lösung erfüllt bereits meine Anforderung.
Vielen Dank!

Delphi.Narium 28. Apr 2020 11:26

AW: Hilfe bei einer SQL Abfrage für Access
 
Sollte damit gehen:
SQL-Code:
select k.kdnummer, count(*) as anzahl from kunden k,
(
  select distinct kdnummer, vorgangnr from vorgang
) v
where k.kdnummer = v.kdnummer
group by k.kdnummer
order by k.kdnummer

Ghostwalker 28. Apr 2020 11:58

AW: Hilfe bei einer SQL Abfrage für Access
 
Code:
SELECT K.*,
       count(v.vorgang)
FROM Kunde K
LEFT JOIN VORGANG V ON (V.KdNr = K.KdNr)
ORDER BY k.kdnr;
So sollte es auch funktionieren. :)

schaumermal 28. Apr 2020 12:09

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

leider erfüllt dieses Statement nicht die Bedingung, dass die Vorgangsnummern pro Kunde nur einmal gezählt werden sollen.
Ungeachtet also ob die Vorgangsnummer mehrfach vorkommt, darf er nur einmal zählen :|


Zitat:

Zitat von Ghostwalker (Beitrag 1463028)
Code:
SELECT K.*,
       count(v.vorgang)
FROM Kunde K
LEFT JOIN VORGANG V ON (V.KdNr = K.KdNr)
ORDER BY k.kdnr;
So sollte es auch funktionieren. :)



Alle Zeitangaben in WEZ +1. Es ist jetzt 20:08 Uhr.
Seite 2 von 2     12   

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