AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SQL (SUM)

Ein Thema von Klaus D. · begonnen am 30. Dez 2004 · letzter Beitrag vom 30. Dez 2004
Antwort Antwort
Klaus D.

Registriert seit: 27. Okt 2003
Ort: 03238 Finsterwalde
124 Beiträge
 
Delphi 6 Professional
 
#1

SQL (SUM)

  Alt 30. Dez 2004, 15:46
Gruß
Gruß ...ich habe folgendes Problem mit meiner Abfrage. Das Ergebnis ist immer '' !keine Fehlermeldung!.
Code:
SELECT SUM((RE.ZEIT * LO.LOHN) + (RE.Preis * RE.Anzahl)) AS Kosten
       FROM  tbl_Rechnung RE
 INNER JOIN  tbl_Lohn LO
         ON  RE.SID_LOHN = LO.ID
      WHERE  RE.SID_Rechnung_NR =:ID
ich muß dazusagen ,daß entweder die Felder (Zeit und Lohn) "ODER !" (Preis und Anzahl) einen Wert enthalten.
2 Query's zu nutzen um einmal die "SUM(RE.ZEIT * LO.LOHN) zu ermitteln und in der zweiten SUM(Preis * Anzahl) und dann die beiden Ergebnisse zu addieren funktioniert...kann aber doch nicht die Lösung sein.

Um eine Rechnung handelt es sich in der ich einmal Arbeitsleistung und einmal Material habe, halt die Summe davon.

-------------------
ich habe mal schnell ne Datenbank(ADS)zusammengeschoben und getestet ob die leeren('')Felder schuld sind.
in den Felder wo garnichts drin steht ,füge ich in meiner Testdatenbank eine 0 ein, der Rest wie gehabt.
Ergebnis ist immer ''nichts/garnichts.
Teile ich die Abfrage auf 2 Query's auf, und add. die beiden Ergebnisse klappt alles.
Query1.
Code:
   
    SELECT SUM(RE.ZEIT * LO.LOHN) AS Kosten
      FROM        tbl_Rechnung RE
INNER JOIN        tbl_Lohn LO
        ON     RE.SID_LOHN = LO.ID
     WHERE     RE.SID_Rechnung_NR =:ID
Query2.
Code:
SELECT SUM(RE.Preis * RE.Anzahl) AS Kosten
  FROM tbl_Rechnung RE
 WHERE RE.SID_Rechnung_NR =:ID
Wo ich das Problem vermute,: in der ersten Abfrage definiere ich einen Join, da der Wert 'Lohn' sich in einer
anderen Tabelle befindet.

Helft mir bitte wie ich beide Abfragen in eine Query unter-bekomme.
HILFE
MfG...Klaus
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#2

Re: SQL (SUM)

  Alt 30. Dez 2004, 15:58
Die Klammersetzung war einfach nur falsch.

So soll es funktionieren, außer wenn eine der beiden SUMmen NULL ist.

NULL+Irgendwas = NULL !!!


SQL-Code:
SELECT SUM(RE.ZEIT * LO.LOHN) + SUM(RE.Preis * RE.Anzahl) AS Kosten
       FROM tbl_Rechnung RE
INNER JOIN tbl_Lohn LO
         ON RE.SID_LOHN = LO.ID
      WHERE RE.SID_Rechnung_NR =:ID

Mit was für einer Datenbank arbeitest du ?
  Mit Zitat antworten Zitat
Hasse

Registriert seit: 24. Sep 2004
Ort: Bad Kösen
35 Beiträge
 
Delphi 7 Professional
 
#3

Re: SQL (SUM)

  Alt 30. Dez 2004, 16:24
Moin,

an der Klammersetzung liegt es glaub ich nicht. Aber wenn ein Wert NULL ist, ist das Ergebnis auch NULL. In Access gibt es glaub ich die Funktion Nz(Ausdruck). Der konvertiert den NULL-Wert.

Aber irgendwie macht die Tabellenstruktur keinen Sinn. Für was soll die Abfrage dienen? Für den Rechnungsausdruck? Warum gibt es für die verschiedenen Kosten einzelne Felder?


Hasse
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:28 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