AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Prism SQL Berechnung und NULL
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Berechnung und NULL

Ein Thema von Werwurm · begonnen am 12. Aug 2007 · letzter Beitrag vom 12. Aug 2007
Antwort Antwort
Seite 2 von 3     12 3      
mkinzler
(Moderator)

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

Re: SQL Berechnung und NULL

  Alt 12. Aug 2007, 16:55
Welche Funktion?
Versuch mal ...sum(iif( <Feld> is not null, <feld>, 0))...
Markus Kinzler
  Mit Zitat antworten Zitat
Werwurm

Registriert seit: 21. Apr 2003
Ort: Bremen
71 Beiträge
 
Delphi 2009 Professional
 
#12

Re: SQL Berechnung und NULL

  Alt 12. Aug 2007, 17:11
Zitat von mkinzler:
Welche Funktion?
Versuch mal ...sum(iif( <Feld> is not null, <feld>, 0))...
@mkinzler
Ich meine die Funktion SUM. Ich bin der Meinung ich zwei Felder verschiedener Tables nicht über die SUM-Funktion addieren kann.
Mit Deinem Vorschlag sieht meine SQL-Abfrage so aus:
SQL-Code:
SELECT s.name||', '||s.vorname, (iif(e.punkte IS NOT NULL, e.punkte, 0)) + (iif(d.punkte IS NOT NULL, d.punkte, 0)) as punkte
FROM "T_SPIELER" s
LEFT OUTER JOIN "T_EINZEL_ERGEBNIS" e ON e.spieler_id=s.id
LEFT OUTER JOIN "T_DOPPEL_ERGEBNIS" d ON d.spieler_id=s.id and d.liga=e.liga
WHERE (e.spieler_id is NOT NULL) AND (d.spieler_id is NOT NULL);
Dadurch erhalte die Fehlermeldung "Token unknown: is"
Gruß
Marcus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: SQL Berechnung und NULL

  Alt 12. Aug 2007, 17:35
Wenn du Null-Werte im where ausschließt, brauchst du diese nicht mehr mit IIf o.ä. auschließen.
Sum summiert alle werte einer oder mehrerer Spalten.
Markus Kinzler
  Mit Zitat antworten Zitat
Werwurm

Registriert seit: 21. Apr 2003
Ort: Bremen
71 Beiträge
 
Delphi 2009 Professional
 
#14

Re: SQL Berechnung und NULL

  Alt 12. Aug 2007, 17:46
Zitat von mkinzler:
Wenn du Null-Werte im where ausschließt, brauchst du diese nicht mehr mit IIf o.ä. auschließen.
Sum summiert alle werte einer oder mehrerer Spalten.
Ich glaube ich wurde immer noch nicht verstanden, oder ich bin komplett auf dem Holzweg.
In den beiden Tables habe ich lediglich nur einen Eintrag pro Spieler. Die erspielten Punkten werden schon beim Eintragen durch eine SP addiert.
Ich musste nur aus Abfragegründen die Einzelspiele von den Doppel trennen. Deshalb habe ich zwei Tables mit schon summierten Werten.
Nun möchte ich lediglich die beiden summierten Werte addíeren.

Ich werde die Sache jetzt versuchen mittels Trigger lösen, da ich für mein Problem keine andere Lösung mehr sehe.
Gruß
Marcus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: SQL Berechnung und NULL

  Alt 12. Aug 2007, 17:48
versuch mal ...not is null ...
Markus Kinzler
  Mit Zitat antworten Zitat
peter12

Registriert seit: 28. Feb 2005
Ort: Oberneukirchen ,Österreich
183 Beiträge
 
Delphi 2006 Professional
 
#16

Re: SQL Berechnung und NULL

  Alt 12. Aug 2007, 18:07
Wäre es nicht möglich einen Trigger zu Programmieren der keine Null auf diesen Feld zuläst sonder 0.
Somit wäre das Problem beim addieren verschwunden.

Peter
  Mit Zitat antworten Zitat
Werwurm

Registriert seit: 21. Apr 2003
Ort: Bremen
71 Beiträge
 
Delphi 2009 Professional
 
#17

Re: SQL Berechnung und NULL

  Alt 12. Aug 2007, 18:29
Hallo,

habe die Sache mit einem Trigger gelöst.
Sobald ich einen Spieler erzeuge bekommt dieser alle Werte auf 0 gesetzt.
So klappt auch die Addition.

Vielen Dank für Eure Hilfe.
Gruß
Marcus
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#18

Re: SQL Berechnung und NULL

  Alt 12. Aug 2007, 18:32
Hallo Marcus,

bei mir funktioniert das:

SQL-Code:
/*
  spieler (id, nachname, vorname)
  einzel (spieler_id, punkte)
  doppel (spieler_id, punkte)
*/


SELECT id, nachname, vorname, (COALESCE(e.punkte, 0) + COALESCE(d.punkte, 0)) AS punkte
FROM spieler s
LEFT JOIN einzel e ON s.id = e.spieler_id
LEFT JOIN doppel d ON s.id = d.spieler_id
Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#19

Re: SQL Berechnung und NULL

  Alt 12. Aug 2007, 18:36
[quote="Werwurm"]Sobald ich einen Spieler erzeuge bekommt dieser alle Werte auf 0 gesetzt.[/default]
Dafür gibts auch Default Werte.
Zitat von Werwurm:
So klappt auch die Addition.
Hast du denn schon die Coalesce Funktion ausprobiert, die ich oben genannt habe.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#20

Re: SQL Berechnung und NULL

  Alt 12. Aug 2007, 18:45
Da hilft eigentlich nur noch der Firebird Null-Guide. Dringend lesen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 00:29 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