AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Verschachtelte SQL Abfrage
Thema durchsuchen
Ansicht
Themen-Optionen

Verschachtelte SQL Abfrage

Ein Thema von Walter Landwehr · begonnen am 6. Nov 2017 · letzter Beitrag vom 8. Nov 2017
Antwort Antwort
Seite 1 von 3  1 23      
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
 
Delphi 10.4 Sydney
 
#1

Verschachtelte SQL Abfrage

  Alt 6. Nov 2017, 10:59
Datenbank: Firebird • Version: 2,5,5 • Zugriff über: IBO / IBExpert
Hallo SQL Spezis,

ich habe eine Tabelle (Buchhaltung) worin es die Felder Kontonummer und Gegenkontonummer gibt.

Ich möchte nun in einem SQL Statement ermitteln alle Kontonummern und Gegenkontonummer die in den Datensätzen vorkommt.
Für die Kontonummer ist es einfach.
Delphi-Quellcode:
SELECT Kontonummer, COUNT(Kontonummer)
FROM tbl_buchhaltung
GROUP BY Kontonummer
HAVING ( COUNT(Kontonummer) > 0 )
Wir mache ich es aber mit Kontonummer und Gegenkontonummer.

Jedes Konto darf als Ergebnis nur einmal vorkommen. (siehe Anlage)
Miniaturansicht angehängter Grafiken
konto.png  
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
jobo

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

AW: Verschachtelte SQL Abfrage

  Alt 6. Nov 2017, 11:03
so ungefähr

Code:
select kontonummer, sum(anzahl) from (
seölct kontonummer, count(*) as Anzahl from tabelle group by kontonummer
union all
seölct gegenkontonummer, count(*) from tabelle group by gegenkontonummer
) x
Gruß, Jo
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Verschachtelte SQL Abfrage

  Alt 6. Nov 2017, 11:12
SQL-Code:
select
  distinct konto
from
  (
      select distict konto from <tabelle>
    union
      select distinct gegenkonto as konto from <Tabelle>
  );
Markus Kinzler
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.891 Beiträge
 
Delphi 12 Athens
 
#4

AW: Verschachtelte SQL Abfrage

  Alt 6. Nov 2017, 11:20
Den Union-Ansatz würde ich auch wählen, ich verstehe die Aufgabe so, dass alle Konten herausgefunden werden sollen, egal ob sie als Konto oder als Gegenkonto verwendet wurden.
Allerdings kann man sich hier den Subselect sparen, da der Union als default ein UNION DISTINCT ist.

SQL-Code:
      select distinct konto from tbl_buchhaltung
    union
      select gegenkonto from tbl_buchhaltung
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP

Geändert von TBx ( 6. Nov 2017 um 13:12 Uhr) Grund: Tipselfehler korrigiert
  Mit Zitat antworten Zitat
jobo

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

AW: Verschachtelte SQL Abfrage

  Alt 6. Nov 2017, 11:22
Soll denn nicht gezählt werden?
Gruß, Jo
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Verschachtelte SQL Abfrage

  Alt 6. Nov 2017, 11:30
Ist m.E. nicht notwendig. Dient wohl nur dazu Dupletten auszufiltern, was durch das DISTINCT ja gemacht werden sollte.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Verschachtelte SQL Abfrage

  Alt 6. Nov 2017, 11:59
Den Union-Ansatz würde ich auch wählen, ich verstehe die Aufgabe so, dass alle Konten herausgefunden werden sollen, egal ob sie als Konto oder als Gegenkonto verwendet wurden.
das wäre eine Möglichkeit, was aber wenn implizit gefragt wurde ob eine Kontonummer sowohl ein Konto als auch ein Gegenkonto repräsentiert?

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

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.891 Beiträge
 
Delphi 12 Athens
 
#8

AW: Verschachtelte SQL Abfrage

  Alt 6. Nov 2017, 12:07
Zitat von p80286:
.. was aber wenn implizit gefragt wurde ob eine Kontonummer sowohl ein Konto als auch ein Gegenkonto repräsentiert?
Was nun genau benötigt wird, kann uns nur der TE sagen.
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Verschachtelte SQL Abfrage

  Alt 6. Nov 2017, 12:50
benötigt wird wie es mkinzler schon geschrieben hat.
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Verschachtelte SQL Abfrage

  Alt 6. Nov 2017, 13:00
Bei diesen Statement:
Delphi-Quellcode:
select
   distinct kontonummer
from
   (
       select distinct kontonummer from tbl_buchhaltung
     union
       select distinct gegenkontonummer as kontonummer from tbl_buchhaltung
   );
kommt diese Fehlermeldung:

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 1.
distinct
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 23: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