Хотите скопировать - customerid, max (цена) из таблицы items_ordered в новую таблицу в SQL Server - PullRequest
1 голос
/ 07 апреля 2019

Хотите скопировать 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 убедитесь, что у каждого столбца есть имя. Для других операторов ищите пустойпсевдонимы. Псевдонимы, определенные как "" или [], не допускаются. Измените псевдоним на допустимое имя.

Ответы [ 3 ]

1 голос
/ 07 апреля 2019

Необходимо указать псевдоним, который будет использоваться в качестве имени вновь созданного столбца для любого выражения, которое не является простым именем столбца:

SELECT   customerid, MAX(price) AS max_price
INTO     a
FROM     items_ordered
GROUP BY customerid
0 голосов
/ 07 апреля 2019

У вас есть два варианта:

  1. Запрос SELECT ... INTO ..., который создает новую таблицу. Сначала создайте запрос SELECT, который даст правильный результат. Затем включите предложение INTO, чтобы указать целевую таблицу для вывода.
  2. Запрос INSERT ... SELECT ..., для которого требуется существующая таблица назначения. Поля целевой таблицы в предложении INSERT должны совпадать с полями в предложении SELECT.
0 голосов
/ 07 апреля 2019

// Вы можете попробовать это. Вам необходимо указать максимальную цену для подходящего имени.

     select customerid, price=max(price) into #A from items_ordered group by customerid

select * from #A
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...