PeterWa
-
Gesamte Inhalte
9 -
Registriert seit
-
Letzter Besuch
Beiträge erstellt von PeterWa
-
-
Hallo Nils!
Zuerst besten Dank für deine Antwort.
Was möchte ich damit bezwecken:
Es Werden für einen Kunden Lieferscheine Erstellt.
Es wird dann eine Lieferscheinrechnung erstellt.
Bei der Erstellung der Lieferscheinrechnung werden die beiden Nummern in einer
Tabelle gespeichert => dbo.tblRGLF.
Damit der Kunde weiß wie viele Lieferscheine in dieser Rechnung verpackt sind,
gibt es ein Feld "Lieferscheine" und da werden die Lieferscheine aufgezählt
zB. 15, 20,25 usw.
Das sollte die Procedur erledigen.
mfg
Peter
-
Hallo und guten Morgen!
Ich plage mich schon etwas länger mit einer Schleife ab. Die im Grunde funktioniert. Nur das Ergebniss ist leider nicht das was ich mir erwarte.
In einer Tabelle werden alle Lieferscheine die zur Rechnung gehören gespeichert.
Es sollen die Lieferscheine wie folgt angezeigt werden: 18, 19, 20 usw.
Bei meiner Anwendung werden sie im Tabellenvormat angezeift. Im nachfolgender Prozedur ist die Print Anweisung
nur Zum Test. im Normalfall steht dort eine Update Anweisung.
Wie ich schon erwähnt habe die Schleife selbst ist das Problem nicht,
Nur bei der Übergabe auf die Variable @Lieferschein gibt es ein Problem.
Ich währe für einen Tipp Dankbar!
mfg
Peter
ALTER PROC [dbo].[spRechnungLFNr] @RgNummer int as set nocount ON; DECLARE @LieferscheinNr int; DECLARE @Lieferschein VARCHAR(255); DECLARE curLieferscheinNr CURSOR FOR SELECT LieferscheinNr From dbo.tblRGLF Where rechnungnr=@Rgnummer OPEN curLieferscheinNr; FETCH NEXT FROM curLieferscheinNr INTO @LieferscheinNr; WHILE @@FETCH_STATUS = 0 BEGIN set @Lieferschein = @LieferscheinNr; set @Lieferschein = @Lieferschein +','+ @LieferscheinNr; Print @Lieferschein FETCH NEXT FROM curLieferscheinNr INTO @LieferscheinNr END CLOSE curLieferscheinNr DEALLOCATE curLieferscheinNr
Wie ich schon erwähnt habe die Schleife selbst ist das Problem nicht,
Nur bei der Übergabe auf die Variable @Lieferschein gibt es ein Problem.
Ich währe für einen Tipp Dankbar!
mfg
Peter
-
Hallo und guten Abend!
Ich habe eine neue DB erstellt und möchte eine Datenbankdiagramm anlegen. Wenn ich bestimmte Tabellen anfügen möchte, dann schaltet sich der Server automatisch ab und startet neu.
Es kommt weder eine Meldung oder sonstwas.
Wie kann ich dieses Problem beheben?
Besten Dank für einen Tipp im voraus!
mfg
Peter
-
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
-
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
-
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
-
Hallo und Guten Morgen!
Ich sollte meine Frage eigentlich anders stellen:
Wie kann ich einer Variablen einen Standartwert zuweisen.
Beim Aufruf mit Exec ist der Wert in @Betrag von und @Betragbis 0
Das der Filter nicht funktionieren kann ist wohl klar
........
Rechnungspreis Between @BetragVon and @BetragBis, and
......Der Wert der Variablen @Betragbis sollte zB. "999999" sein
SQL Server ist halt nicht VBA.
Meine Versuche mit If und Case brachten leider auch nicht den gewünschten Erfolg.
LG
Peter
-
Hallo und Guten Tag!
Zuerst einmal ich bin neu im Forum. Ich habe mich bis jetzt mit Access "gespielt" und habe mir in den Kopf gesetzt meine Anwendung in SQL Server zu migrieren.
Mein Thema Probleme mit Where ist vielleicht nicht ganz treffend.
Ich versuche es aber trotzdem.
Ich erstelle derzeit ein Formular Rechnungen suchen.Die Procedur:
ALTER Proc [dbo].[spSuchenRechnung] @Kunde varchar(50) = 0, @Strasse Varchar(50) = 0, @PLZ varchar(10) = 0, @Ort varchar(50) = 0, @DatumVon date = Null, @DatumBis date = Null, @RgBetragVon Money = 0, @RgBetragBis Money = 0, @RGvon int = 0, @RgBis int = 0 AS SELECT * FROM dbo.tblRechnung LEFT JOIN dbo.tblKundenAdressen ON dbo.tblRechnung.Kundennummer = dbo.tblKundenAdressen.Adressnummer WHERE (CONCAT (Adresszeile_2, Adresszeile_1) LIKE @Kunde +'%') and -- or @Kunde + '%' is null) AND Strasse LIKE @Strasse +'%' and -- Or @Strasse is null AND PLZ LIKE @PLZ +'%' and --or @PLZ +'%' is null and Ort LIKE @Ort +'%' and ---or @ort +'%' is null and Rechnungsdatum Between @Datumvon and @Datumbis And Rechnungspreis Between @RgBetragVon and @RgBetragBis and Rechnungsnummer Between @rgvon And @rgbis ORDER BY dbo.tblRechnung.Rechnungsnummer, CONCAT (Adresszeile_2, Adresszeile_1);
Zu meiner Frage:
Ist es möglich in einer Where Bedingung eine Case function einzubauen?
Wenn ich der Rechnungsnummer 0 (Null) übergebe dann sollen alle DS angezeibgt werden
ansonsten die angegebene Nr
Etwa so:
Case @rgvon WHEN = 0 Then Rechnungsnummer > 0 When <> 0 Then Rechnungsnummer =@rgvon
Ich müsste bei der RgNr nicht 2 Werte übergeben.
Ich hoffe das ich mein Problem verständlich dargestellt habe.
mfg
Peter und schöne grüße aus Wien
SQL Management Studio Probleme nach Migration einer Access DB
in MS SQL Server Forum
Geschrieben
Hallo!
Mein System:
SQL Server 2019 Express
Management Studio 19,02
Ich habe von Access 365 eine Datenbank migriert.
Wenn ich Tabellen in das Management Studio einfügen möchte dann gibt es Probleme.
zB.
Die Tabelle tblAngebot = OK
Bei der Tabelle tblAngebotDeteil verabschiedet sich das Management Studio ohne Meldung, und startet wider neu.
Das selbe Problem bei Auftrag, Lieferschein u. Rechnung.
In der DB von AC standen diese Tabellen alle in 1:n Beziehung
Wo habe ich den Fehler?
Besten Dank für eine Tipp im voraus!
mfg
Peter