Zum Inhalt springen

Brodi87

Mitglieder
  • Gesamte Inhalte

    49
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Brodi87

  1. Okay... ich habs hinbekommen. Schuld war ein simpler Tippfehler. Also...wo soll das Bier denn nun hin?
  2. @streffin wow...das ist gut! ich schwöre dir, dass ich ein Paket mit Bier zu Weihnachten schicke!!! Wenns denn geht... ich will mein einfaches (select art, menge from art) einbinden...aber leider funktioniert es nicht, mit der Fehlermeldung das ja eine Unterabfrage nicht zulässig sei. habs zwar schon komplett versucht wieder umzubauen aber irgendwie ist der wurm drin. PS: das Bierangebot steht noch!
  3. der Sinn wird wahrscheinlich auch nicht so einfach verständlich sein. Ich erklärs mal grob: Wir wollen Etiketten drucken, die auf Artikel geklebt werden. Wenn also nun 100 Artikel mit einer bestimmten Seriennummer (z.B. '1') im Wareneingang erscheinen. Dann sollen 100 Aufkleber mit Seriennummer '1' darauf gedruckt werden. Nun fragt sich bestimmt jemand, wieso der Trottel denn nicht einfach am Drucker die Druckanzahl ändert. Das Problem ist einfach, dass zum Teil 100 verschiedene Artikel mit einmal rein kommen...das sind 100 verschiedene Seriennummern mit verschiedenen Mengen. Also müsste man 100 mal manuell die Druckanzahl wählen. In unserer Lagersoftware gibt es eine SQL-Schnittstelle die mir ermöglicht solche Skripte zu verwenden und dann am Drucker auszugeben. Aus diesem Grund möchte ich den ganzen Ablauf vereinfachen. Das eigentliche Skript ist weitaus komplexer, aber mir hilft es schon die Lösung für das "einfache" Problem zu finden.
  4. sorry ganz vergessen. MS SQL 2005
  5. hallo, habe Artikel und einen Mengenwert: Art Menge xx 2 yy 3 nun möchte ich jeden Artikel jeweils so oft ausgeben, wie die Menge ist sprich: Art Menge xx 2 xx 2 yy 3 yy 3 yy 3 mfg
  6. der Drucker ist freigegeben und "Drucker verwalten" ist auch deaktiviert!
  7. Hallo, wir haben einen Druckserver Windows 2003 auf denen die Druckerverwaltung stattfindet. Im Netzwerk laufen hauptsächlich Windows XP Clients. Nun habe ich einen neuen Laptop mit Windows7, drucke ich etwas von mir (Admin) dann funktioniert das problemlos. In diesem Moment steigt aber scheinbar der Treiber für XP aus und die XP-Clients können nicht mehr drucken. Diesen kann man nur zurück setzen indem man als Admin unter XP z.B. eine Testseite druckt. Wie kann man einstellen das die XP-Clients trotzdem drucken bzw. den Treiber auf ihr System wieder setzen können? Unter zusätzliche Treiber kann man bei einigen Druckern Windows7 nicht auswählen (Drucken geht aber trotzdem von 7) Hoffe Ihr habt paar gute Tricks und Tipps für mich! mfg
  8. Ich habe eine Prozedur mit einfacher Abfrage die in einer Schleife läuft. --Nachlieferung declare @BelegP_ID varchar(12) --fange mit kleinster ID an set @BelegP_ID = (select min(BelegP_ID) from BelegP where Belegnummer = '001') --bis größte ID erreicht ist while @BelegP_ID <= (select max(BelegP_ID) from BelegP where Belegnummer = '003') begin declare @sql varchar (max) set @sql = 'select BELEGP_ID, Kennung, Belegtyp, Belegnummer, Hauptkennung, Posnummer, Postext, Zeilentyp, Umsatz, Menge, Eingabemenge, EditMenge, Artikelnummer, WarenCode, Bestellnummer, Bezeichnung, Zusatz, Mengeneinheit, Gewicht, Kalkulationspreis, KalkpreisEuro, Einzelpreis, Preiseinheit, Rabatt, Rabatt2, Gesamtpreis, Netto, NettoEuro, RNetto, RNettoEuro, Lagerfaktor, SteuerCode, Steuerprozent, Konto, Termin, Lager, LagerplatzID, AdressNr, Mitarbeiter, Kostenstelle, Kostentraeger, Datum, Vorgaenger, Fertigung, Verwendet, Uebernahme, Preisoptionen, AlternativPos, Status from BelegP where BelegP_ID =''' + convert(varchar(12), @BelegP_ID ) +''' ' if ((@BelegP_ID) <= (select max(BelegP_ID) from BelegP where Belegnummer = '111') and (@BelegP_ID) > (select min(BelegP_ID) from BelegP where Belegnummer = '111')) print 'union all ' else print '' --EXEC (@sql) print (@sql) set @BELEGP_ID = @BELEGP_ID +1 --ansonsten zum nächsten Mandant END Manch einer fragt sich jetzt vielleicht Warum dieses Select in einer Schleife läuft. Nur so viel: es hat natürlich einen speziellen Hintergrund, auf den ich aber mal nicht weiter eingehe. Jetzt zum eigentlichen Problem: Ziel ist es 3 (oder mehr) Selects zu einem zu verbinden via UNION ALL! Führe ich es als Print aus, ist die Abfrage grundsätzlich richtig. Mit EXEC behandelt er es aber als 3 unterschiedliche Selects und splittet es dementsprechend im Ergebnis! (könnt ihr mir folgen? ) Nun würd ich die Abfrage gerne genauso Ausführen, wie sie mit Print ausgegeben wird. Wie stell ich das an? MfG PS: MS SQL 2005
  9. Hallo, habe eine komplexe Aufgabe und weiß derzeit noch nicht richtig wie ich es umsetze und hoffe ihr könnt mir ein paar Tipps geben. Ich habe eine Tabelle mit Artikel und Preisen. Die Preise der Artikel verändern sich ständig und ich würde gern eine Statistik darüber machen, wie sich der Preis verändert (Prozentwerte), Wann er verändert wurde (Zeitraum). Theoretisch müsste ich ja nach jedem UPDATE was den Preis verändert, die Preise zu den entsprechenden Artikel auslesen. Dies ist aber ja nur möglich wenn ich diese wieder in eine neue Tabelle schreiben würde?!?!? Da ich mit dem Reporting Services noch nicht vertraut bin aber weiß das viel möglich ist, würde ich die Sache gern darüber angehen. Habt Ihr Tipps und Ratschläge wie man dies umsetzen könnte? MfG
  10. Hm..es hat mir zumind. einen Denkanstoß gegeben und hilft mir schon weiter Danke!
  11. Nun hab ich sehr viel an dem Skript erweitert, wobei ein neues Problem auftaucht: update ... Preis = case when exists(select...) [INDENT][/INDENT]then [INDENT][/INDENT] (select case when exists (select...Artnr.Tab1=Artnr.Tab2) [INDENT]then (...)[/INDENT] [INDENT]else (...)[/INDENT] [INDENT])end[/INDENT] else [INDENT][/INDENT](select case when exists (select...where Artnr.Tab1=Artnr.Tab2) [INDENT]then (...)[/INDENT] [INDENT]else (...)[/INDENT] [INDENT])end[/INDENT] .... Nun kommt immer die Meldung das die Unterabfrage mehr als einen Wert zurückgegeben hat. Wie kann ich es besser schreiben? Danke schon mal!
  12. Okay...gerade dacht ich es funkt nicht aber jetzt hab ichs...und wieder mal tausend Dank an Dich!
  13. Okay...das war auch meine Überlegung es auf diesem Weg zu versuchen. Leider versteh ich grad nicht deine Schreibweise für folgendes: Um es nochmal kurz zu erläutern: Es gibt verschiedene Mandanten die jeweils eine eigene Datenbank haben. In einer Tabelle Preisgruppen wird hinterlegt welcher Mandant welches Preismodell verwendent, worauf hin der entsprechende Mandant sich das Preismodell aus der Hauptdatenbank zieht. Also 3 Tabellen: Mandant (DB ->willkürlich - mit der Preistabelle) Preisgruppen aus HauptDB und Preismodelltabelle auch aus HauptDB.
  14. Okay...es läuft doch, war ein internes Problem. declare @Artikelpreis float, --Artikelpreis DB1 @Artikelnummer varchar(18), --Artikelnummer der Datenbank1 select @Artikelpreis = hm1.Artikelpreis, @Artikelnummer = hm1.Artikelnummer from DB1.Preis as HM1, join DB2.Preis UM2 on um2.Artikelnummer = hm1.Artikelnummer update DB2.Preis SET DB2.Preis.Artikelpreis = (select round(Artikelpreis*Preismodell/100) from DB1.Preis , Preisgruppe Where DB2.Preis.Artikelnummer = DB1.Preis.Artikelnummer and Preisgruppe.Modell = '1') Nun kommt die eigentliche Schwierigkeit: Eine Tabelle PreisgruppeN...enthält die Mandanten Nummer (2-10) - was den Datenbanken DB2-10 entspricht - mit der entsprechenden Preisgruppenummer (1-3) - was jeweils einer Spalte in der Tabelle Preisgruppe entspricht. Wenn nun z.b. bei Mandant 5 die Preisgruppennummer (z.b. auf '1') geändert wird, soll in Mandant 5 die Preise: Artikelpreis*Preismodell1/100 berechnet werden. Es soll also unabhängig vom mandant sein und anhand der Preisgruppennummer die entsprechende Spalte in Preisgruppe nehmen. Ich hab es schon mit: set @Artikelpreis = case when exists ... probiert! Leider bekomm ich da Probleme das die Datenbank bzw. Server nicht gefunden wird? wie realisier ich dies?
  15. Okay habs erstmal hinbekommen das ich grundsätzlich die Werte von einer Tabelle in die andere schreibe. Nun ist aber das Problem das ich den Artikelpreis der DB2 aus dem Artikelpreis von DB1 und dem Prozentwert von DB1.Preisgruppe berechne. declare @Artikelpreis float, --Artikelpreis DB1 @Artikelnummer varchar(18), --Artikelnummer der Datenbank1 select @Artikelpreis = hm1.Artikelpreis, @Artikelnummer = hm1.Artikelnummer from DB1.Preis as HM1, join DB2.Preis UM2 on um2.Artikelnummer = hm1.Artikelnummer update DB2.Preis SET DB2.Preis.Artikelpreis = (select Artikelpreis from DB1.Preis Where DB2.Preis.Artikelnummer = DB1.Preis.Artikelnummer) 2 Probleme: 1. In meiner aktuellen Abfrage holt es nicht bei allen den Wert aus DB1 in DB2. Ist mit dieser Abfrage grundsätzlich etwas falsch? 2. Wie bekommen ich nun in der Unterabfrage nach SET die Preisgruppentabelle rein, zum berechnen des DB2 Preises? In einem Versuch hab ich einfach: SET DB2.Preis.Artikelpreis = (select round(Artikelpreis*Preismodell/100) from DB1.Preis , Preisgruppe Where DB2.Preis.Artikelnummer = DB1.Preis.Artikelnummer and Preisgruppe.Modell = '1') aber da kommen nicht die gewünschten werte...
  16. ...und wieder mal beschäftigt mich ein scheinbar unüberwindbares Problem! Kurze Erläuterung: (noch schnell Traubenzucker einnehmen und los geht’s! ) Es gibt eine Tabelle Kalkulation in der verschiedenen Preismodelle (1-3) und die dementsprechenden Prozente eingetragen sind. Nun gibt es eine Tabelle Preisgruppen, in der eingetragen wird welcher Mandant(gibt ca. 10), welches Preismodell hat. Wenn man nun in den Preisgruppen ein Preismodell für einen Mandanten einträgt, soll anhand einer Abfrage der neue Preis bestimmt werden. Also wenn in Preisgruppe : Mandant2 (DB2) gleich Preisgruppe ‘2‘ hat, dann soll aus DB1 der Preis gezogen werden und mit dem Prozentwert von Tabelle Kalkulation aus Spalte Preismodell2 verrechnet werden und in DB2 eingetragen werden. Da ich schon am einfachen scheitere, möchte ich mich erstmal mit dem Grundgerüst dem Ergebnis nähern: declare @m_Hauptartikelpreis float, -- der Preis aus DB1 @m_Artikelpreis float, --Artikelpreis DB2 @m_Preismodell_2 float, --Preismodell Tabelle Kalkulation @m_Artikelnummer varchar(18), --Artikelnummer der Datenbank1 @m2_Artikelnummer varchar(18) --Artikelnummer der Datenbank2 select @m_HauptArtikelpreis = HM1.HauptArtikelpreis, @m_ Preismodell_2 = Preismodell_2, @m_Artikelnummer = DB1.Artikelnummer, @m2_Artikelnummer = DB2.Artikelnummer from DB1.Preis as HM1, DB1.Kalkulation, DB2.Preis as MUM2 where @m_Artikelnummer = @m2_Artikelnummer and Kalkulation.Nummer = 'Preistarife 1-3' update DB2.Preis SET DB2.Preis.Artikelpreis = round((@m_Hauptartikelpreis * @m_ Preismodell_2 / 100 + @m_Artikelpreismodell),2) print 'Update abgeschlossen!'; Problem bei meinem Grundgerüst ist: Wenn ich die Artikelnummer fest definiere, funktioniert das Update bei der dementsprechenden Artikelnummer. Es soll nun aber bei jeder Artikelnummer den Preis aktualisieren. Danke für Eure Hilfe! PS: wie immer MSSQL
  17. Brodi87

    Werte generieren

    Das ist es! :uli Wow...Dank dir vielmals! PS: Dafür das du "arbeitslos" bist, hast du es aber echt drauf!
  18. Brodi87

    Werte generieren

    ich erklär es mal grob... Man soll einen Artikel und ein Jahr auswählen können! Dann werden alle Monate des Jahres mit den entsprechenden Umsatzzahlen ausgegeben. Aber es soll auch die Monate anzeigen, wo nichts passiert ist. Und in der Menge steht dann eben '0'! Da diese Monate, mit Umsatz '0' nicht auftauchen, müssen diese Monate, nur für diese Abfrage, künstlich generiert werden. so...aber es funktioniert leider immer noch nicht wie gewünscht, da es immer noch nicht alle Monate ausgibt...
  19. Brodi87

    Werte generieren

    okay...das habe ich soweit verstanden und das ist denk ich auch das was ich suche. Nur ist mir jetzt irgendwie unklar wie du in dieser Temp-Tabelle mehrere Zeilen schreiben willst und diese dann anschließend in der eigentlichen Abfrage einbinden willst. Das ist mit meinem Anfängerwissen noch etwas zu hoch! Also gehen wir mal von einer simplen Ausgangsabfrage aus: select Artikelnummer, Datum, sum(Menge) from Table1 where Jahr = '2009' group by Artikelnummer, Datum
  20. Brodi87

    Werte generieren

    es gibt Dateadd... leider weiß ich nicht wie man damit es realisieren könnte...
  21. Brodi87

    Werte generieren

    ja...aber genau das möchte ich nicht! Da ich aus verschiedenen Gründen keine "Hilfs"-Tabelle erstellen kann! Ich suche deswegen eine andere Möglichkeit!
  22. Ja..genau das hab ich gesucht! Danke an Streffin!
  23. Ich habe eine Tabelle aus der (es geht um eine Artikelstatistik) das Jahr mit entsprechenden Monat ausgelesen werden sollen. Leider sind nicht alle Monate vorhanden. z.B. wurde ein Artikel nur im Mai und Juli verkauft. Mache ich jetzt eine normale Abfrage, zeigt es mir (logisch) nur die Werte für Mai und Juli an. Nun möchte ich aber das es jeden Monat anzeigt, aber mit entsprechenden 0-Werten in den Spalten. Ich könnt es über eine Hilfstabelle joinen, aber das ist in diesem Fall auch nicht möglich. Nun bastel ich an einer Schleife die das ganze generieren soll...leider bisher ohne Erfolg... Habt ihr Tipps und vorschläge wie ich das realisier? :confused: (MS SQL Server 2005)
  24. Ich habe eine Abfrage, die nur in einer bestimmten Datenbank ausgeführt werden darf und kann. Gibt es eine Möglichkeit, vorher, bevor die eigentliche Abfrage beginnt, zu prüfen ob die Abfrage in der richtigen Datenbank ausgeführt wird, und wenn nicht eine Meldung (print???) erscheint, die darauf hinweist, das man die Abfrage in der falschen Datenbank ausführt? Wenn ja wie? mfg

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...