Prośba o sprawdzenie zapytania SQL

0

Witam,
dostałem polecenie przygotowania pewnych analiz z danych z tabeli SQL.
Do analiz potrzebuję trochę przygotować te dane np. wprowadzić nazwy miesięcy itd.
Potworzyłem kolumny i zacząłem updateować dane ale robię to po jednym wierszu bo nie wiem jak spowodować żeby kilka operacji wykonało się jednocześnie.
Przykład:
Tym dodaje nazwy miesięcy
USE [YYY]
GO

UPDATE [dbo].[XXX]
SET
[Nazwa miesiąca] = 'Październik 2015' WHERE YEAR(DataSPD) = 2015 AND MONTH(DataSPD) = 010

GO

ale chciałbym to robić jednocześnie dla wszystkich miesięcy jednocześnie. Próbowałem tego

USE [YYY]
GO

UPDATE [dbo].[XXX]
SET
[Nazwa miesiąca] = 'Październik 2015' WHERE YEAR(DataSPD) = 2015 AND MONTH(DataSPD) = 010
[Nazwa miesiąca] = 'Listopad 2015' WHERE YEAR(DataSPD) = 2015 AND MONTH(DataSPD) = 011
GO

Ale nie działa, dodawanie przecinków, średników między wierszami itd też nie pomaga.
Jak rozdzielić te wiersze? Czy tak się nie da i muszę użyć innej funkcji?
Z góry dziękuję za pomoc
DS

0

Ty tak poważnie z tymi miesiącami??? Przecież to można zrobić w zapytaniu pobierającym datę http://sqlhints.com/2015/06/07/how-to-get-month-name-from-date-in-sql-server/

0

Dzięki za odpowiedź i podpowiedź.
Pytam poważnie.

Rozumiem że to nie kwestia jakiegoś przecinka czy czegoś w tym rodzaju?

Zapytanie pobierające ok ale dla mnie ma dwie wady: pobiera tylko miesiąc a ja potrzebuje miesiąc+rok a po drugie to tylko przykład - mam dużo danych zawierających skróty a potrzebuje w analizach pełnych nazw. Życie byłoby prostsze gdyby baza nie miała 4mln wierszy.
Znalazłem jeszcze funkcję CASE i może z nią popróbuje choć na razie coś nie bardzo działa.

0

Ale tu nie potrzebujesz żadnego casea

SET LANGUAGE Polish
UPDATE
    XXX
SET
    [nazwa miesiaca] = Datename(month, DataSPD) + ' ' + convert(varchar(4),year(DataSPD))
1

nie możesz zrobić tak UPDATE jak byś chciał w pierwszym poście, możesz np. tak

UPDATE 
  tabelka 
SET 
  pole = CASE
    WHEN MONTH(DataSPD) = 1 THEN 'Styczeń'
    WHEN MONTH(DataSPD) = 1 THEN 'Luty'
    ...
    WHEN MONTH(DataSPD) = 12 THEN 'Grudzień'
  END || ' ' || CONVERT(VARCHAR(4),YEAR(DataSPD));
0

Ok dzięki
Spróbuję obu sposobów i dam znać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1