Hallo zusammen,
ich stehe vor folgendem Problem.
Ich habe in einer MS-SQL DB eine Tabelle, in der es ein Schlüsselfeld gibt (ID) ein datetime Feld bei dem nur die Datumwerte gefüllt sind, ein varchar(5) Feld, in dem gültige Uhrzeiten im Format [hh:mm] eingetragen sind und ein leeres datetime Feld, in dem das Datum aus dem Datumsfeld und die Uhrzeit aus dem varchar Feld (die Uhrzeit) per update Befehl eingetragen werden sollen.
Hier einige Datensätze aus der ursprünglichen Tabelle:
So soll das fertige Ergebnis aussehen:
Ich hatte das versucht über den folgende Weg:
update Tabellenname
set Ergebnis =
( cast(convert(varchar(19),Datum,104) + ' ' + Uhrzeit + ':00' as datetime)
where ID in
(select ID
from Tabellenname
where Datum is not NULL) )
where ID in
(select ID
from Tabellenname
where Datum is not NULL)
Leider bekomme ich aus dem SQL Server Management Studio immer folgende Fehlermeldung zurück:
"Meldung 512, Ebene 16, Status 1, Zeile 1 Die Unterabfrage hat mehr als einen Wert zurückgegeben. Das ist nicht zulässig, wenn die Unterabfrage auf =, !=, <, <=, > oder >= folgt oder als Ausdruck verwendet wird."
Hat hier jemand eine einfache Lösung des Problems?
Vielen Dank.
ich stehe vor folgendem Problem.
Ich habe in einer MS-SQL DB eine Tabelle, in der es ein Schlüsselfeld gibt (ID) ein datetime Feld bei dem nur die Datumwerte gefüllt sind, ein varchar(5) Feld, in dem gültige Uhrzeiten im Format [hh:mm] eingetragen sind und ein leeres datetime Feld, in dem das Datum aus dem Datumsfeld und die Uhrzeit aus dem varchar Feld (die Uhrzeit) per update Befehl eingetragen werden sollen.
Hier einige Datensätze aus der ursprünglichen Tabelle:
ID | Datum | Uhrzeit | Ergebnis |
1 | 01.04.2015 | 14:00 | NULL |
2 | 15.06.2015 | 13:33 | NULL |
3 | 16.07.2015 | 15:55 | NULL |
4 | 22.08.2015 | 17:33 | NULL |
ID | Datum | Uhrzeit | Ergebnis |
1 | 01.04.2015 | 14:00 | 01.04.2015 14:00 |
2 | 15.06.2015 | 13:33 | 15.06.2015 13:33 |
3 | 16.07.2015 | 15:55 | 16.07.2015 15:55 |
4 | 22.08.2015 | 17:33 | 22.08.2015 17:33 |
Ich hatte das versucht über den folgende Weg:
update Tabellenname
set Ergebnis =
( cast(convert(varchar(19),Datum,104) + ' ' + Uhrzeit + ':00' as datetime)
where ID in
(select ID
from Tabellenname
where Datum is not NULL) )
where ID in
(select ID
from Tabellenname
where Datum is not NULL)
Leider bekomme ich aus dem SQL Server Management Studio immer folgende Fehlermeldung zurück:
"Meldung 512, Ebene 16, Status 1, Zeile 1 Die Unterabfrage hat mehr als einen Wert zurückgegeben. Das ist nicht zulässig, wenn die Unterabfrage auf =, !=, <, <=, > oder >= folgt oder als Ausdruck verwendet wird."
Hat hier jemand eine einfache Lösung des Problems?
Vielen Dank.
Comment