Jump to content

winscheil

Members
  • Gesamte Inhalte

    5
  • Registriert seit

  • Letzter Besuch

Letzte Besucher des Profils

574 Profilaufrufe

Fortschritt von winscheil

Apprentice

Apprentice (3/14)

  • 5 Jahre dabei!
  • Erste Antwort
  • Erster eigener Beitrag
  • Eine Woche dabei
  • Einen Monat dabei

Neueste Abzeichen

0

Reputation in der Community

  1. Das klappt soweit sehr gut. Ein Problem habe ich jetzt noch. Wenn z.B. jemand diese Woche abwesend ist, z.B. krank oder Berufsschule und dann am Montag oder Mo und Di gleich wieder eine Abwesenheit hat z.B. Urlaub, dann wird mir als letzter Abwesenheitstag der Freitag ausgegeben und nicht der Montag bzw. Dienstag. Hier das Beispiel: create table #abwesend (mitarbeiter varchar(10), unterbrechungsgrund varchar(15), datum date) insert into #abwesend values ('Huber','Berufsschule','20230320'), ('Huber','Berufsschule','20230321'), ('Huber','Berufsschule','20230322'), ('Huber','Berufsschule','20230323'), ('Huber','Berufsschule','20230324'), ('Huber','Urlaub','20230327'), ('Huber','Urlaub','20230328'), ('Huber','Berufsschule','20230424'), ('Huber','Berufsschule','20230425') DECLARE @StartDate DATE = '20230321'; ... Rest wie bisher Ergebnis: Mitarbeiter Unterbrechungsgrund Datum Huber Berufsschule 2023-03-24 Eigentlich sollte da aber folgendes Ergebnis raus kommen: Mitarbeiter Unterbrechungsgrund Datum Huber Urlaub 2023-03-28 Was muss da noch angepasst werden?
  2. Hallo, ich habe folgende Konstellation bzw. Datenbestand: Mitarbeiter Unterbrechungsgrund Datum Huber Urlaub 16.03.2023 Huber Urlaub 17.03.2023 Huber Urlaub 03.04.2023 Huber Urlaub 04.04.2023 Maier krank 16.03.2023 Maier Urlaub 17.03.2023 Müller krank 16.03.2023 Müller Urlaub 25.05.2023 Müller Urlaub 26.05.2023 Als Ergebnis brauch ich den letzten Abwesenheitstag der aktuellen Abwesenheit (bis er wieder anwesend ist...). Und nicht den letzten eingetragenen und geplanten Abwesenheitstag. Ergebnis: Huber Urlaub 17.03.2023 Maier Urlaub 17.03.2023 --> der Urlaub folgst ohne Unterbrechung auf den Kranktag, daher ist der auch noch dabei Müller krank 16.03.2023 ich bekomme es ohne Probleme hin, den letzten Abwesenheitstag auszugeben. select Top 1 Mitarbeiter, Unterbrechungsgrund, Datum from Tabelle order by Datum asc Aber wie mache ich es, dass er stoppt, wenn die Abwesenheit unterbricht?
  3. Hallo,ich möchte eine Abfrage bauen, die mir aus einer Tabelle immer die 3 höchsten Werte jedes Monats ausgibt.Datenaufbau:Monat Wert01 55001 20001 32001 60001 12002 80002 41002 15002 59002 730...Die Ausgabe soll dann folgendes bringen:Monat Wert01 60001 55001 32002 80002 73002 590...Ich kann zwar mit Top 3 die drei höchsten Werte einer ganzen Tabelle ausgeben.Aber ich weiß nicht, wie ich die Wiederholung für jeden Monat umsetzen kann. Zur Info. Es ist MSSQL. Limit geht also nichtKann mir da jemand helfen?
  4. Hallo, ich habe folgende SQL Auswertung: Artikel Grundpreis Staffelmenge Staffelpreis ABC 20 5 18 ABC 20 50 15 ABC 20 100 12 DEF 50 50 40 XYZ 30 20 25 XYZ 30 100 20 Und bräuchte die Staffelmengen und Preise je Artikel augeteilt in Spalten in einer Zeile: Artikel Grundpreis SM1 SP1 SM2 SP2 SM3 SP3 SM4 SP4 ABC 20 5 18 50 15 100 12 NULL NULL DEF 50 50 40 NULL NULL NULL NULL NULL NULL XYZ 30 20 25 100 20 NULL NULL NULL NULL Ich hoffe, ich habe mein Problem verständlich dargestellt. Kann mir dazu einer helfen?
  5. Hallo, ich habe eine Tabelle mit folgendem Aufbau: AUFTRAG, START_TAG, ENDE_TAG, PRO_WOCHE ABC, 2018-05-07, 2018-09-07, 38699,19 DEF, 2018-03-05, 2018-04-27, 3215,15 XYZ, 2018-07-23, 2018-11-09, 11315,35 Da ist der Auftrag, ein Starttag, ein Endtag und der Geldwert, der Pro Woche zwischen Starttag und Endtag anfällt. Jetzt will ich eine Abfrage machen, die mir pro Woche in dem Zeitraum zwischen Starttag und Endtag eine neue Zeile erstellt. Ich überprüfe den Starttag, ob er kleiner gleich dem Endtag ist und erhöhe den Starttag immer um eine Woche und vergleiche dann wieder. Solange der Starttag nach den Erhöhungen kleiner als der Endtag ist, wird eine neue Zeile pro Woche erstellt. Bsp: AUFTRAG, DATUM, PRO_WOCHE ABC, 2018-05-07, 38699 ABC, 2018-05-14, 38699 ABC, 2018-05-21, 38699 ... ABC, 2018-09-03, 38699 Das habe ich so gemacht: declare @zaehler int set @zaehler = 0 while @zaehler <=(selectDATEDIFF(WEEK,START_TAG,ENDE_TAG) from QUELLTABELLE where AUFTRAG ='123') BEGIN insert into ZIELTABELLE select AUFTRAG,DATEADD(WEEK,@zaehler, START_TAG) as DATUM, PRO_WOCHE from QUELLTABELLE where AUFTRAG ='123' set @zaehler += 1 END Das funktioniert jetzt für einen Eintrag der obigen Quelltabelle. Aber ich weiß jetzt nicht, wie ich das auf die ganze Quelltabelle ausbaue, dass für alle Einträge/Zeilen in der Quelltabelle neue Einträge/Zeilen in die Zieltabelle geschrieben werden. Ich hoffe, ich habe alles verständlich erklärt. Kann mir da jemand helfen?
×
×
  • Neu erstellen...