Jump to content

PeterWa

Members
  • Gesamte Inhalte

    14
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von PeterWa

  1. Hallo NIls! Was will ich erreichen: Diese Proc. ist Hintergrund für ein Suchformular. Und CASE Rgtyp .... sollte dann nach RgDatum eingefügt werden. Man hat dann die Möglichkeit nach allen Argumenten zu suchen. Rechnungsnummer, Rechnungsdatum, Namen Wohnort. Rechnungsbetrag zwischen xx und yy. und da gibt es eben das Problem. mfg Peter ....... HaVING isnull(FamName +' '+ Vorname,'') LIKE '%'+ @Patient +'%' And isnull(Strasse +' '+ Wonort,'') LIKE '%'+ @Adresse +'%' AND isnull(RGNummer,'') Between @RgNrVon AND @RgNrbis AND isnull(RgDatum,'') Between @RgDatumvon and @RgDatumbis (CASE Rgtyp WHEN 1 THEN sum(([menge]*[RgBetrag])*((100+tblRechnungDeteil.MwSt)/100)) WHEN 2 THEN sum([tblBehandlungDeteil].[Behandbetrag]*((100+[tblBehandlungDeteil].[Mwst])/100)) WHEN 3 THEN Sum([GutBetrag]*((100+[tblGutschein].[Mwst])/100) ELSE 0 END) Between @Betragvon AND @BetragBis ORDER BY [FamName] +' ' + [VorName];
  2. Hallo! Ich möchte einmal sagen das ich in SQL- Server nicht unbedingt "Sattelfest " bin. Mein Problem: Die mitgesendete Procedur funktioniert . Was nicht funktioniert ist, wenn ich den Rechnungsbetrag einbinde. Ich komme da nicht ganz klar. Entweder ist "End" oder "Between" rot unterlegt. Eine Zusatzfrage hätte ich noch: Wenn ich Rechnungsnummer filtere. Wenn ich eine Zahl mitschicke wird diese Zahl angezeigt. Wenn ich ALLE Rechnungen angezeigt haben möchte, gibt es nur "meine variante"? Für einen Tipp währe ich dankbar. Besten Dank im Voraus! Peter --EXEC [dbo].[spRechnungSuchen] '%','%',0,'19000101','20290918',0,99999 ALTER PROCEDURE [dbo].[spRechnungSuchen] @Patient varchar(50), @Adresse varchar(50), @RGNummer int, @RgDatumvon date, @rgDatumBis date, @Betragvon float, @BetragBis float AS SET NOCOUNT ON; DECLARE @RgNrVon int, @RgNrbis int if(@RGNummer = 0) set @RgNrVon = 0 else set @RgNrVon = @RGNummer if(@RGNummer = 0) set @RgNrbis = 99999 else set @RgNrbis = @RGNummer SELECT RgNummer, Format(RgDatum,'d','de-de')DatumRg, FamName +' '+ Vorname as Patient, Strasse +' '+ Wonort as Adresse, CASE Rgtyp WHEN 1 THEN 'Rechnung' WHEN 2 THEN 'Sammelrechnung' WHEN 3 THEN 'Gutschein' End as RechnungTyp, CASE Rgtyp WHEN 1 THEN isnull(sum(([menge]*[RgBetrag])*((100+tblRechnungDeteil.MwSt)/100)),'') WHEN 2 THEN isnull(sum([tblBehandlungDeteil].[Behandbetrag]*((100+[tblBehandlungDeteil].[Mwst])/100)),'') WHEN 3 THEN isnull(Sum([GutBetrag]*((100+[tblGutschein].[Mwst])/100)),'') ELSE 0 END As SummeRechnung FROM ((((tblRechnung LEFT JOIN tblPatientAdressen ON tblRechnung.PatientNr = tblPatientAdressen.PatientNr) LEFT JOIN tblRechnungDeteil ON tblRechnung.RgNummer = tblRechnungDeteil.RechnungNr) LEFT JOIN tblBehandlung ON tblRechnung.RgNummer = tblBehandlung.RechnungNr) LEFT JOIN tblBehandlungDeteil ON tblBehandlung.BehandlungNr = tblBehandlungDeteil.BehandlungNr LEFT JOIN tblGutschein ON tblRechnung.RgNummer = tblGutschein.RechnungNr) GROUP BY RgNummer, RgDatum, FamName +' '+ Vorname, Strasse +' '+ Wonort,Rgtyp HaVING isnull(FamName +' '+ Vorname,'') LIKE '%'+ @Patient +'%' And isnull(Strasse +' '+ Wonort,'') LIKE '%'+ @Adresse +'%' AND isnull(RGNummer,'') Between @RgNrVon AND @RgNrbis AND isnull(RgDatum,'') Between @RgDatumvon and @RgDatumbis ORDER BY [FamName] +' ' + [VorName]; /* (CASE Rgtyp WHEN 1 THEN sum(([menge]*[RgBetrag])*((100+tblRechnungDeteil.MwSt)/100)) WHEN 2 THEN sum([tblBehandlungDeteil].[Behandbetrag]*((100+[tblBehandlungDeteil].[Mwst])/100)) WHEN 3 THEN Sum([GutBetrag]*((100+[tblGutschein].[Mwst])/100) ELSE 0 END) Between @Betragvon AND @BetragBis */
  3. Hallo! Ich habe die SElECT ... Anweisung, die die Grundlage für den Export ist neu erstellt. Jetzt klappst ganz plötzlich! Was die Ursache war? Die Anweisung wurde 1:1 hergeslt Ich vermute im Nachhinein das die Verbindung nicht ganz korrekt war . Aber nochmals besten Dank! mfg Peter
  4. Hallo Nils! Besten Dank für deine "Anteilnahme"! Es ist so: Ich habe mich bis jetzt mit Access befasst. Es gibt in dieser Anwendung eint Tabelle "Kassabuch", Es sollen für jedes Monat/Quartal die Ein- und Ausgaben in Excel bereitgestellt werden. Wie schon gesagt: In Access gab es keine Probleme. Mein Versuch mit der verlinkten Tabelle klappt leider nicht. Noch eine Zusatzinfo: In der Pension muss man sich ja irgendwie beschäftigen! mfg Peter
  5. Hallo! Es wird sicher eine Möglichkeit geben von SQl Server den Teil einer Tabelle nach Excel zu exportieren. Leider weiß ich es nicht. Ich währe für einen Tipp dankbar. Ich denke da an eine Ges- Prozedur. Nur zur Info: Es sind eigentlich meine ersten Schritte mit SQL-Server mfg Peter
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. PeterWa

    Probleme mit Where

    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
  14. PeterWa

    Probleme mit Where

    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
×
×
  • Neu erstellen...