Jump to content

Leeres Ergebnis - Datensatz ohne Inhalt


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo und guten Morgen

 

Bevor ich mein Problem erkläre möchte ich festhalten das dies meine ersten Schritte in SQL Server sind.

Nun zur meiner Frage:: Wie behandelt man einen leeren Datensatz, Um es genauer zu sagen Wenn bei nachstehnder Abfrage kein Ergebniss vorhanden ist.

wenn also bei nachstehender abfrage kein Wert vorhanden ist.

 

Set @Kunde = (Select 
Kundenrabatt
FROM dbo.tblKundenRabatt
WheRE Rabattgruppe = @Rabattgruppe
And Kundenadresse=@Adresse)

 

Meine Versuche mit @Kunde is null oder @kunde = 0
Brachten mich leider nicht weiter,

 

Besten dank für einen tipp im voraus!

 

mfg

Peter

 

Link zu diesem Kommentar

Hallo!

Mein Ziel:

Es gibt in dieser Procedur 2 Abfragen die eine oben und eine die nur den Allgemeinen  Rabatt  beinhaltet. Wenn also die 1. Abfrage leer ist, dann wird die 2. Abfrage aktiv.

Der Aufruf der Prc :

@Rabattgruppe  

@Adresse 

@Rabatt steht für den Rückgabewert der Proc.

 

Die Variableen

@Kunde  steht für die 1. Abfrage

@Special steht für die 2. Abfrage

 

Es sollte ungefähr so wie unten beschreiben klappen 

Ich stelle mir das zumindest so vor (vielleicht ein bischen Blauäugig?)

 

if @Kunde = null

SET @Rabatt = @Spcial  -- Name der 2. Abfrage

else

SET @Rabatt =@Kunde

 

mfg

Peter

 

Link zu diesem Kommentar

Hallo!

Ich sende die komplette Procedur.

Nochmals die Function:

Wenn Adresse und Rabattgruppe in @Kunden vorhanden, dann soll der Rabatt von @Kunde genommen werden. 

zB: '0007',3 Diese sind vorhanden und werden auch Übernommen

Wenn aber statt der 3 eine 4, Dieser Kunde ist in der tblKundenrabatt nicht vorhanden. Er bekommt den @Special Rabatt

Wenn ich die Proc ausführe und mit

Print @Kunde und

Print @Special konntroliere und @Kunde ist False ist das auch leer. 

Ich habe mich mit einer Unterabfrage abgemüht, wenn @Kunde ohne Ergebniss ist, eine 0 angezeigt wird, da bin ich aber an der Erstellung gescheitert

 

Ich hoffe das ich jetzt alles richtig erklärt habe.

 

mfg

Peter

ALTER Procedure [dbo].[spRabatt]
@Rabattgruppe varchar(25),
@Adresse Int,
@Rabatt real Output
AS

Declare @Special as real
Declare @Kunde as real

Begin
SET @Special = (SELECT Spezial
FROM dbo.tblRabattgruppe
WHERE Rabattgruppe =  @Rabattgruppe);

Set @Kunde = (Select 
Kundenrabatt
FROM dbo.tblKundenRabatt
WHERE Rabattgruppe = @Rabattgruppe
And Kundenadresse = @Adresse);
SET @Rabatt = @Kunde
End

 

Link zu diesem Kommentar

Evtl. hilft ein If ELSE im Statement weiter: https://docs.microsoft.com/de-de/sql/t-sql/language-elements/if-else-transact-sql?view=sql-server-2017

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/c72397d1-e5aa-4d56-8793-9e363738f888/if-else-in-stored-procedure?forum=transactsql

 

BTW: Die Deklaration der Variablen und die Benennung der Feldnamen sind IMO etwas unglücklich.  Bei  @Adresse gehe ich nicht von einer ID (int) aus, ebenfalls bei Kundenadresse.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...