"Oleg Matveyev" ...

Всем привет.

следующие два запроса упираются в ошибку
Undefined name.
Dynamic SQL Error.
SQL error code = -204.
Ambiguous field name between a field and a field in the select list with name.
ID_STORAGE.

SELECT id_Storage, id_Storage, id_GoodSpec, SUM(db_Count0)
FROM prcReport_FOS_Good_UDF(3, 0)
GROUP BY id_Storage, id_Storage, id_GoodSpec

SELECT id_Storage, id_Storage, id_GoodSpec, SUM(db_Count0)
FROM prcReport_FOS_Good_UDF(3, 0)
GROUP BY id_Storage, id_GoodSpec

   Ну а как он должен понять по какому именно полю группировать ?
В принципе, можно добавить проверку на то, что одноимённые поля в SELECT
берутся из одной и той же таблицы и игнорировать все, кроме одного... но
я бы не расматривал это как высокоприоритетную задачу... Занеси в трекер,
чтобы не забылось, а там посмотрим :)

   В стандарт не смотрел, может там есть что на этот счёт

а если указать номера в группировке - проходит нормально в обоих вариантах:

SELECT id_Storage, id_Storage, id_GoodSpec, SUM(db_Count0)
FROM prcReport_FOS_Good_UDF(3, 0)
GROUP BY 1,3

SELECT id_Storage, id_Storage, id_GoodSpec, SUM(db_Count0)
FROM prcReport_FOS_Good_UDF(3, 0)
GROUP BY 1,2,3


P.S. FB 2.0.5; WIN

P.P.S. практический смысл в указании двух одинаковых полей: INSERT SELECT

INSERT INTO ...
SELECT id_Storage, id_Storage, id_GoodSpec, SUM_db_Count0
 FROM (
  SELECT id_Storage, id_GoodSpec, SUM(db_Count0) AS SUM_db_Count0
    FROM prcReport_FOS_Good_UDF(3, 0)
   GROUP BY id_Storage, id_GoodSpec
 ) T


--
Хорсун Влад

Ответить