#sql #sql-server #select
#sql #sql-сервер #выберите
Вопрос:
Хотите скопировать customerid
и максимальную цену из таблицы items_ordered
в новую таблицу (скажем, A). Я не знаю, как скопировать, когда есть агрегатная функция, иначе запрос будет работать без столбца агрегатной функции.
пробовал вот так:
select customerid, max(price) into A from items_ordered group by customerid;
Таблица items_ordered
: (http://www.sqlcourse2.com/items_ordered.html )
customerid order_date item quantity price
10330 30-Jun-1999 Pogo stick 1 28.00
10101 30-Jun-1999 Raft 1 58.00
10298 01-Jul-1999 Skateboard 1 33.00
10101 01-Jul-1999 Life Vest 4 125.00
10299 06-Jul-1999 Parachute 1 1250.00
10339 27-Jul-1999 Umbrella 1 4.50
10449 13-Aug-1999 Unicycle 1 180.79
10439 14-Aug-1999 Ski Poles 2 25.50
10101 18-Aug-1999 Rain Coat 1 18.30
10449 01-Sep-1999 Snow Shoes 1 45.00
10439 18-Sep-1999 Tent 1 88.00
10298 19-Sep-1999 Lantern 2 29.00
10410 28-Oct-1999 Sleeping Bag 1 89.22
10438 01-Nov-1999 Umbrella 1 6.75
10438 02-Nov-1999 Pillow 1 8.50
10298 01-Dec-1999 Helmet 1 22.00
10449 15-Dec-1999 Bicycle 1 380.50
10449 22-Dec-1999 Canoe 1 280.00
10101 30-Dec-1999 Hoola Hoop 3 14.75
10330 01-Jan-2000 Flashlight 4 28.00
10101 02-Jan-2000 Lantern 1 16.00
10299 18-Jan-2000 Inflatable M... 1 38.00
10438 18-Jan-2000 Tent 1 79.99
10413 19-Jan-2000 Lawnchair 4 32.00
10410 30-Jan-2000 Unicycle 1 192.50
10315 02-Feb-2000 Compass 1 8.00
10449 29-Feb-2000 Flashlight 1 4.50
10101 08-Mar-2000 Sleeping Bag 2 88.70
10298 18-Mar-2000 Pocket Knife 1 22.38
10449 19-Mar-2000 Canoe paddle 2 40.00
10298 01-Apr-2000 Ear Muffs 1 12.50
10330 19-Apr-2000 Shovel 1 16.75
Результат:
Имя объекта или столбца отсутствует или пустое. Для
SELECT INTO statements
убедитесь, что у каждого столбца есть имя. Для других инструкций ищите пустые псевдонимы. Псевдонимы, определенные как «» или [], не допускаются. Измените псевдоним на допустимое имя.
Ответ №1:
Вам нужно указать псевдоним, который будет использоваться в качестве вновь созданного имени столбца для любого выражения, которое не является простым именем столбца:
SELECT customerid, MAX(price) AS max_price
INTO a
FROM items_ordered
GROUP BY customerid
Ответ №2:
// Вы можете попробовать это. Вам нужно присвоить максимальной цене подходящее имя.
select customerid, price=max(price) into #A from items_ordered group by customerid
select * from #A
Ответ №3:
В основном у вас есть два варианта:
SELECT ... INTO ...
Запрос, который создает новую таблицу. Сначала создайте запрос SELECT, который выдает правильный результат. Затем включите предложение INTO-, чтобы указать целевую таблицу для вывода.INSERT ... SELECT ...
Запрос, для которого требуется существующая целевая таблица. Поля целевой таблицы в предложении INSERT должны соответствовать полям в предложении SELECT.