SELECT T.ID, T.NAME, COALESCE(SUM_RUBLI, 0), COALESCE(SUM_UE, 0)
FROM TOVARI T
LEFT JOIN (
  SELECT PR.TOVAR_ID, SUM(SUM_RUBLI), SUM(SUM_UE)
  FROM PRODAGI PR
  GROUP BY PR.TOVAR_ID) AS P (ID, SUM_RUBLI, SUM_UE)
ON P.ID = T.ID

Да уж, лажанулся я с примером. Я даже и не подозревал что оптимизатор такой план сгенерить может - браво!!!
Джойнить можно только независимые таблицы. Иначе полный ахтунг в консерватории.

Это почему? Мне на самом деле надо джойнить не с агрегатами, а с первой 
попавшейся записью, как я раньше спрашивал. Задача - обеспечение совместимости 
разных форматов новостей (rss, rdf, atom). Мне надо чтобы любую новость можно 
было пердставить в формате rss ОДНИМ представлением. Атом допускает множество 
вложенных объектов, а рсс только один. Поэтому для представления атом-новости в 
виде rss я выбираю любой попавшийся вложенный объект, причём совершенно 
наплевать какой именно. Отсюдова и задача возникла. Пока выкрутился двумя 
подзапросами: первый выбирает запись с минимальным ID, а второй по этому ID 
джойнит.

Ответить