Что-то чем больше я углубляюсь в DERIVED TABLES, тем страннее они мне кажутся.

Не знаю кто как, но лично я, когда впервые увидил синтаксис JOIN (SELECT ...) 
ON ..., то подумал что можно будет делать джойны с запросами, считающими 
агрегаты например, ну типа такого:

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

хоть запрос иневалидный, но смысл думаю понятен.

Потом выяснилось что писать условия внутрь запроса нельзя, поэтому 
вышеописанный джойн написать невозможно.
Мне кажется что это признак того что реализация этих DERIVED TABLES не очень хорошая и смысл синтаксиса JOIN (SELECT ...) кажется сомнительным. Хотелось бы узнать мнение знающих по этому поводу (особенно у ДЕ и ДК как хороших теоретиков).
Может можно что-то исправить пока нет релиза? (например MS позволила себе 
существенные переделки между .NET2 Beta1 и Beta2 в самом CLR и ничего ;-), 
после второй беты сразу вышел релиз).

Или может быть я не понимаю фишки DERIVED TABLES. Тогда объясните мне 
пожалуйста для решения каких задач они были задуманы?

Reply via email to