Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

SQL Update abfrage gibt NULL zurück

Frage Entwicklung Datenbanken

Mitglied: tim1986

tim1986 (Level 1) - Jetzt verbinden

13.03.2009, aktualisiert 14.03.2009, 4118 Aufrufe, 4 Kommentare

Hy,
hab ma wieder n kleines Problem und komm ned weiter...
ums kurz zu machen,
ich möchte summierte Umsatzwerte in eine Spalte eintragen...
das ganze funktioniert auch super, bis ich von den Umsätzen die Guschriften abziehen will, wenn da keine vorhanden ist wird aus Umsatz - Gutschrift, Umsatz -NULL
und in diesem zuge auch das ergebniss NULL
hier der code zum verständnis...
01.
use SL_M9999; 
02.
go 
03.
update kunden set _umsatzdj= 
04.
(( 
05.
select sum (eurobrutto) 
06.
from beleg  
07.
where belegtyp = 'R'  
08.
and Adressnummer = '1'  
09.
and datepart (Year,datum)= '2009' 
10.
)  
11.
12.
13.
select sum (isnull(eurobrutto,0)) 
14.
from beleg  
15.
where belegtyp in ('S','G')  
16.
and Adressnummer = '1'  
17.
and datepart (Year,datum)= '2009' 
18.
)), 
19.
_umsatzvj=(( 
20.
select sum (eurobrutto) 
21.
from beleg  
22.
where belegtyp = 'R'  
23.
and Adressnummer = '1'  
24.
and datepart (Year,datum)= '2008' 
25.
26.
27.
28.
select sum (isnull(eurobrutto,0))  
29.
from beleg  
30.
where belegtyp = 'G'  
31.
and Adressnummer = '1'  
32.
and datepart (Year,datum)= '2008' 
33.
)) 
34.
where Nummer = '1' 
35.
go
Mitglied: it-frosch
13.03.2009 um 21:18 Uhr
Hallo tim1986,

was bekommst du denn zurück wenn du die Queries für die Gutschriften einzeln ausführt?
Bitte warten ..
Mitglied: tim1986
13.03.2009 um 21:29 Uhr
hallo it-frosch,
da bekomme ich auch NULL...
es kommt auf jeden fall wenn es keine Gutschriften (Belegtyp in (''G,'S')) gibt...n lösungsansatz währe wenn ich für diese procedure NULL sagen würde das es 0 bzw. 0,00 währe... hab aber leider keine ahrnung wie?!
Bitte warten ..
Mitglied: it-frosch
13.03.2009 um 21:41 Uhr
hallo tim1986,

mal mit
isnull
(
select sum (isnull(eurobrutto,0))
from beleg
where belegtyp = 'G'
and Adressnummer = '1'
and datepart (Year,datum)= '2008'
),0)

versucht.

Ich kann es bei mir nicht testen. Mein Firebird versteht isnull nicht und datepart habe ich nicht mit eingebunden als UDF.
Bitte warten ..
Mitglied: tim1986
13.03.2009 um 22:27 Uhr
super dein tipp hat mich drauf gebracht...
in verbindung mit der group by klausel hats dann endlich gegeht
ich poste hier nochma den kompletten code vielen dank nochma...
01.
use SL_M9999; 
02.
go 
03.
update kunden set _umsatzdj=(( 
04.
select sum (eurobrutto) 
05.
from beleg  
06.
where belegtyp = 'R'  
07.
and Adressnummer = '1'  
08.
and datepart (Year,datum)= '2009' 
09.
)  
10.
11.
isnull(( 
12.
select sum (isnull(eurobrutto,0)) 
13.
from beleg  
14.
where belegtyp in ('S','G')  
15.
and Adressnummer = '1'  
16.
and datepart (Year,datum)= '2009' 
17.
Group by eurobrutto),0)), 
18.
_umsatzvj=(( 
19.
select sum (eurobrutto) 
20.
from beleg  
21.
where belegtyp = 'R'  
22.
and Adressnummer = '1'  
23.
and datepart (Year,datum)= '2008' 
24.
25.
26.
isnull(( 
27.
select sum (isnull(eurobrutto,0))  
28.
from beleg  
29.
where belegtyp = 'G'  
30.
and Adressnummer = '1'  
31.
and datepart (Year,datum)= '2008' 
32.
Group by eurobrutto),0)) 
33.
where Nummer = '1' 
34.
go
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Datenbanken
SUM oder AVG in SQL Abfrage dauert viel zu lange warum? (5)

Frage von samet22 zum Thema Datenbanken ...

Datenbanken
gelöst SQL-Abfrage mit MAX() (9)

Frage von FrAmEr zum Thema Datenbanken ...

DNS
Nslookup gibt falschen DNS Namen zurück (3)

Frage von ultrapottoti zum Thema DNS ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (9)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...