Напишите запрос, который создаст новую таблицу с именем «RecentReleases» с кодом CD, названием, исполнителем и датой выпуска в виде столбцов и его данных для компакт-дисков, выпущенных в 2017 году, в противном случае будет напечатано сообщение со следующим текстом: ' Нет доступных последних выпусков '.
Данные на компакт-дисках таблиц
INSERT INTO CDs VALUES
('CD001', 'Awesome 80s Collection', 'Various', 24, '1991/01/01', 'R99'),
('CD002', 'Anti', 'Rihanna', 13, '2016/02/01', 'R183'),
('CD003', 'Now 75', 'Various', 22, '2017/03/01', 'R140'),
('CD004', 'The Afterlove', 'James Blunt', 10, '2017/04/01', 'R140'),
('CD005', 'Oh My My', 'One Republic', 16, '2016/10/01', 'R151');
Что я пробовал:
DECLARE @i INT
SET @i = 1
WHILE @i <= (SELECT COUNT(*) FROM CDs)
BEGIN
IF (SELECT TOP 1 YEAR(RELEASE_DATE) FROM CDs) = 2017
BEGIN
SELECT CD_CODE, TITLE, ARTIST, RELEASE_DATE INTO RecentReleases
FROM CDs
SET @i += 1
END
ELSE
BEGIN
PRINT 'No recent releases available'
SET @i += 1
END
END
Вывод:
No recent releases available
No recent releases available
No recent releases available
No recent releases available
No recent releases available
Completion time: 2020-04-07T00:19:16.0325100+02:00
Проблемы:
Невозможно перебрать записи, если я удалю «TOP 1» из моего предложения If, тогда я получу следующую ошибку:
Подзапрос вернул более 1 значения , Это недопустимо, если подзапрос следует =,! =, <, <=,>,> = Или когда подзапрос используется в качестве выражения.