|
|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/12005317aa704.html, оценка из 5, голосов 10
|