Jump to content

ath

Members
  • Gesamte Inhalte

    2
  • Registriert seit

  • Letzter Besuch

Letzte Besucher des Profils

Der "Letzte Profil-Besucher"-Block ist deaktiviert und wird anderen Benutzern nicht angezeit.

Fortschritt von ath

Rookie

Rookie (2/14)

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

Neueste Abzeichen

0

Reputation in der Community

1

Beste Lösungen

  1. ath

    TSQL Update Problem

    Hallo, ich sehe wahrscheinlich den Wald vor lauter Bäumen nicht und brauche einen Schubs in die richtige Richtung. Ich habe eine einfache Tabelle in der Form: CREATE TABLE [dbo].[Test]( [PersNummer] [char](6) NULL, [Stand] [datetime] NULL, [Wert] [nchar](10) NULL ) ON [PRIMARY In dieser Tabelle stehen bspw. folgende Sätze: INSERT INTO [dbo].[Test] VALUES ('4711', '2019-09-01 00:00:00.000', '18'); INSERT INTO [dbo].[Test] VALUES ('4712', '2019-08-01 00:00:00.000', '51') INSERT INTO [dbo].[Test] VALUES ('4711', '2021-10-01 00:00:00.000', '81') INSERT INTO [dbo].[Test] VALUES ('4711', '2021-12-01 00:00:00.000', '151') INSERT INTO [dbo].[Test] VALUES ('4712', '2020-06-01 00:00:00.000', '60') Nun möchte ich die je Personalnummer das Feld Wert für den aktuellsten Stand updaten. Die Selektion an sich würde so gelingen: SELECT T.* FROM Test as T inner join (select x.PersNummer, max(x.stand) as MaxDatum from test as X group by x.PersNummer) as y on t.PersNummer = y.PersNummer and t.stand = y.MaxDatum und als Ergebnis PersNummer Stand Wert 4712 2020-06-01 00:00:00.000 60 4711 2021-12-01 00:00:00.000 151 In diesen Sätze soll der Wert von 60 bzw. 151 durch 100 ersetzt werden. Irgendeine Idee? Danke und Gruß Andreas
  2. Windows Server 2008R2 Hallo, ich weis nicht, wie ich mein Problem exakt beschreiben soll. Meine Update-Queries finden seit ein paar Tagen kein Ende mehr, d.h. Updates, die bislang innerhalb von Sekunden fertig waren sind selbst nach Stunden nicht beendet. Ein Beispiel: Meine Zieldatenbank enthält 45810 Sätze. Hier sollen ein paar Felder mit der Summe aus einer anderen Tabelle geändert werden. Das Update sieht so aus: update [meineDB].[dbo].[Zieltabelle] set pluswert = (select (sum(s.amount) / Stunden) * (Plus * StundenJeTag) from [meineDB].[dbo].[Quelldatei] as s where [meineDB].[dbo].[Zieltabelle].[Person] = s.Person and s.leistungsart not in ('8016', '8017', '8018', '8021', '8022') group by s.person) Wie gesagt: Die Abfrage lief bislang einwandfrei und war innerhalb von Sekunden beendet. Führe ich diese Abfrage als select aus und ersetze zum testen die Felder der Zieltabelle durch Konstanten ist der select in 2 Sekunden erledigt. Lege ich eine neue Datenbank an und führe die Abfragen in dieser neuen Datenbank aus ergibt sich das gleiche Problem. In welcher Richtung kann ich nach dem Fehler suchen? Danke und Gruß Andreas
×
×
  • Neu erstellen...