Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbankfrage mit Inner Join (https://www.delphipraxis.net/180242-datenbankfrage-mit-inner-join.html)

youuu 4. Mai 2014 11:55

Datenbank: Mysql • Version: 5 • Zugriff über: Devart

Datenbankfrage mit Inner Join
 
Hi,

ich hänge gerade an einer Abfrage fest. Vielleicht könnt Ihr mir da helfen.



Delphi-Quellcode:
Query.SQL.Text:='Select SUM( Z.zahlung_netto) AS Zahlungseingang, P.rn '+
                  'FROM `'+DB_KUNDENDATEN+'` AS K , `'+DB_POSITIONEN+'` AS P INNER JOIN '+DB_ZAHLUNGSEINGANG+' AS Z ON Z.rn = P.rn GROUP BY Z.rn'+
                  'WHERE (P.kd = :kd) AND (K.kd = :kd);';
So sieht die Abfrage momentan aus, welche allerdingsnicht funktioniert (Fehlermeldung).


Was ich möchte:

Ich habe 3 Datenbank.

1. Kundendaten
2. Rechnungen
3. Zahlungseingang

kd = kundennummer
rn = rechnungsnummer

kundendaten ist über die kd mit den Rechnungen verknüpft und Zahlungseingänge übder rn mit Rechnungen.
Jetzt möchte ich von einem Kunden die Rechnungen ausgeben und zur jeweiligen Rechnung den Zahlungseingang zusammengefasst.

Beispiel:


Kunde A
- Rechnung A
- Zahlungseingänge (Zusammengefasst)
- Rechnung B
- Zahlungseingänge (Zusammengefasst)

haentschman 4. Mai 2014 11:59

AW: Datenbankfrage mit Inner Join
 
Zitat:

...welche allerdingsnicht funktioniert (Fehlermeldung)
... mit Geheimtinte getippt? :P Verrats doch...

Unabhängig davon solltest du die Abfrage parametrisieren. Das erspart eine Menge Probleme.

youuu 4. Mai 2014 12:04

AW: Datenbankfrage mit Inner Join
 
Ist doch parametesiert :)

Delphi-Quellcode:
Query.ParamByName('kd').Value := FKd;
Siehe in der Abfrage ":kd", falls das gemeint hattest.



Fehlermeldung:

#42000FUNCTION Z.rnWHERE does not exist

(extra ohne Leerzeichen, da so angegeben)

haentschman 4. Mai 2014 12:10

AW: Datenbankfrage mit Inner Join
 
Zitat:

+DB_KUNDENDATEN+
...hielt ich beim Überfliegen für einen Wert, sorry. :zwinker:
Zitat:

GROUP BY Z.rn'+'WHERE (P.kd = :kd) AND (K.kd = :kd);';
...fällt dir was auf? Da fehlt ein Leerzeichen. Damit erkennt das der Parser nicht richtig sondern als Funktion.
Zitat:

(extra ohne Leerzeichen, da so angegeben)
...deine Erklärung für dich selbst. :zwinker:

joachimd 4. Mai 2014 12:11

AW: Datenbankfrage mit Inner Join
 
Code:
= P.rn GROUP BY Z.rn'+
                  'WHERE (P.kd = :kd) AND (K.kd = :kd);';
Vor Deinem WHERE fehlt ein Leerzeichen
....oopos, zu spät;)

youuu 4. Mai 2014 12:27

AW: Datenbankfrage mit Inner Join
 
Na super, total Blind. Danke sehr :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:10 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