Главная страница


su.dbms.sql

 
 - SU.DBMS.SQL ------------------------------------------------------------------
 From : Serg Vasiltsoff                      2:5020/400     19 Mar 2001  21:40:25
 To : All
 Subject : Re: вопросец
 -------------------------------------------------------------------------------- 
 
 > Hello All.
 
 Привет
 
 > Хотелось бы получить альтеpнативную, более эффективную, запись этого
 
 запpоса, с
 
 > минимальными отклонениями от стандаpта ANSI (в идеале тольько
 
 использование
 
 > TOP).
 >
 > === Cut ===
 > ALTER  VIEW akViewAccountData
 > AS
 >   SELECT
 >     1 AS IsCustom,
 >     VGAC.IsRoot,
 >     VGAC.IsSub,
 >     VGAC.IsFolder,
 >     VGAC.IsLeaf,
 >     VGAC.IsInClientBalance,
 >     VGAC."Code",
 >     CAST(COUNT(SA."Id") AS BIT) AS HasChildren,
 >     VGAC."Id",
 >     OCA.CurrencyId
 >   FROM
 >     akViewGenericAccountCode VGAC
 >     LEFT OUTER JOIN ASubAccount SA ON (VGAC."Id" = SA.FolderAccountId)
 >     LEFT OUTER JOIN AOneCurrencyAccount OCA ON (VGAC."Id" = OCA."Id")
 >   GROUP BY
 >     VGAC."Id",
 >     VGAC.IsRoot,
 >     VGAC.IsSub,
 >     VGAC.IsFolder,
 >     VGAC.IsLeaf,
 >     VGAC.IsInClientBalance,
 >     VGAC."Code",
 >     OCA.CurrencyId
 
 Гм... Оторвать бы чего по самое нехочу.... Зачем тут GROUP BY? Из-за COUNT?
 А подзапрос вставить (SELECT COUNT(*) FROM ...) as ChildrenCount - слабо? И
 никаких (ненужных) группировок - DISTINCT' ов не будет и работать все бует
 просто и понятно. А то разница между BIT и INT при условии, что с нулем
 будем сравнивать слишком мала, а реализация существенно отличается.
 
 SELECT
     1 AS IsCustom,
 
     VGAC.IsRoot,
     VGAC.IsSub,
     VGAC.IsFolder,
     VGAC.IsLeaf,
     VGAC.IsInClientBalance,
     VGAC."Code",
 
     (SELECT COUNT(*) FROM SA WHERE SA.FolderAccountId = VGAC."Id") AS
 HasChildren,
     VGAC."Id",
     (SELECT CurrencyId FROM AOneCurrencyAccount OCA WHERE OCA."Id" =
 VGAC."Id") as CurrencyId
 FROM
     akViewGenericAccountCode VGAC
 
 и усе!
 А то соединять (LEFT OUTER JOIN AOneCurrencyAccount OCA ON (VGAC."Id" =
 OCA."Id")) цельную таблицу для получения цельного поля.... Оно надо? А то
 соединение - оно же "палка о двух концах" и т.д.....
 --- ifmail v.2.15dev5
  * Origin: Lime Systems (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 вопросец   Akzhan Abdulin   19 Mar 2001 19:16:56 
 Re: вопросец   Serg Vasiltsoff   19 Mar 2001 21:40:25 
 вопросец   Akzhan Abdulin   21 Mar 2001 15:47:42 
 Re: вопросец   Ilya Zvyagin   19 Mar 2001 22:53:24 
 вопросец   Akzhan Abdulin   21 Mar 2001 14:29:48 
 Re: вопросец   Tolik Tentser   20 Mar 2001 19:04:42 
 вопросец   Akzhan Abdulin   21 Mar 2001 14:27:21 
 Re: вопросец   Tolik Tentser   21 Mar 2001 15:27:45 
 вопросец   Akzhan Abdulin   21 Mar 2001 18:35:09 
Архивное /su.dbms.sql/12005317aa704.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional