Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2010, 18:28   #1
ketrik5
 
Регистрация: 26.11.2009
Сообщений: 9
По умолчанию как прописать из 3 запросов в один

всем здравствуйте кто откликнется на мою помощь.
в программе access сделаны 3 запроса и в программе прописаны как открытием этих запросов. как можно сделать чтоб меньше записи было в программе?, т.е в программе прописывается открытием 3 запроса, а как можно это сокращенней прописать. помогите кто-нибудь советами
ketrik5 вне форума Ответить с цитированием
Старый 17.12.2010, 21:14   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте ketrik5.
"..как можно это сокращенней прописать.." - на сколько "сокращенней", не с чем сравнивать, выложите код или архив с БД и только после анализа можно будет думать над Вашим вопросом - "..как можно сделать чтоб меньше.."
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 21.12.2010, 17:03   #3
ketrik5
 
Регистрация: 26.11.2009
Сообщений: 9
По умолчанию

здравствуйте евгений.
это прописано в модуле программы
DoCmd.OpenQuery "НК_РН_7301"
DoCmd.OpenQuery "РН_7301"
DoCmd.OpenQuery "Прочие_7301"

А сами запросы выглядят так:
INSERT INTO import1 ( ZKDZ_VIDZ, ZKDZ_IND, ZKDZ_KATZ, ZKDZ_VIDD, 0AMOUNT_011, 0AMOUNT_021, 0AMOUNT_031, 0AMOUNT_041, 0AMOUNT_051, 0AMOUNT_061, ZQUANT1_071 )
SELECT zadol1.VidZadol, zadol1.Str_Bal, dbo_VidPrihRash_BW.nBW AS Выражение1, zadol1.VD1, Sum(zadol1.SumBal0101) AS [Sum-SumBal0101], Sum(zadol1.SumBal0101_pr) AS [Sum-SumBal0101_pr], Sum(zadol1.Sum_RabTekGod) AS [Sum-Sum_RabTekGod], Sum(zadol1.Sum_OplTekGod) AS [Sum-Sum_OplTekGod], Sum(zadol1.sumbalans1) AS [Sum-sumbalans1], Sum(zadol1.sumbalans2) AS [Sum-sumbalans2], Max(zadol1.D_pr) AS [Max-D_pr]
FROM zadol1 INNER JOIN dbo_VidPrihRash_BW ON zadol1.nType = dbo_VidPrihRash_BW.nRash
WHERE (((zadol1.nStrEdDop)=10000120) AND ((zadol1.BalChet)=7301) AND ((zadol1.Str_Bal)=244))
GROUP BY zadol1.VidZadol, zadol1.Str_Bal, dbo_VidPrihRash_BW.nBW, zadol1.VD1
ORDER BY zadol1.VidZadol, zadol1.Str_Bal, zadol1.VD1;



INSERT INTO import1 ( ZKDZ_VIDZ, ZKDZ_IND, ZKDZ_KATZ, ZKDZ_VIDD, 0AMOUNT_012, 0AMOUNT_022, 0AMOUNT_032, 0AMOUNT_042, 0AMOUNT_052, 0AMOUNT_062, ZQUANT1_072 )
SELECT zadol1.VidZadol, zadol1.Str_Bal, dbo_VidPrihRash_BW.nBW AS Выражение1, zadol1.VD1, Sum(zadol1.SumBal0101) AS [Sum-SumBal0101], zadol1.SumBal0101_pr, Sum(zadol1.Sum_RabTekGod) AS [Sum-Sum_RabTekGod], Sum(zadol1.Sum_OplTekGod) AS [Sum-Sum_OplTekGod], Sum(zadol1.sumbalans1) AS [Sum-sumbalans1], Sum(zadol1.sumbalans2) AS [Sum-sumbalans2], Max(zadol1.D_pr) AS [Max-D_pr]
FROM ((zadol1 INNER JOIN dbo_StrEd ON zadol1.nStrEdDop = dbo_StrEd.nStrED) INNER JOIN dbo_CE ON dbo_StrEd.TypeCe = dbo_CE.nType) INNER JOIN dbo_VidPrihRash_BW ON zadol1.nType = dbo_VidPrihRash_BW.nRash
WHERE (((zadol1.nStrEdDop)<>10000120) AND ((dbo_StrEd.TypeCe)=8 Or (dbo_StrEd.TypeCe)=10) AND ((zadol1.BalChet)=7301) AND ((zadol1.Str_Bal)=244))
GROUP BY zadol1.VidZadol, zadol1.Str_Bal, dbo_VidPrihRash_BW.nBW, zadol1.VD1, zadol1.SumBal0101_pr
ORDER BY zadol1.VidZadol, zadol1.Str_Bal, zadol1.VD1;


INSERT INTO import1 ( ZKDZ_VIDZ, ZKDZ_IND, ZKDZ_KATZ, ZKDZ_VIDD, 0AMOUNT_013, 0AMOUNT_023, 0AMOUNT_033, 0AMOUNT_043, 0AMOUNT_053, 0AMOUNT_063, ZQUANT1_073 )
SELECT zadol1.VidZadol, zadol1.Str_Bal, dbo_VidPrihRash_BW.nBW AS Выражение1, zadol1.VD1, Sum(zadol1.SumBal0101) AS [Sum-SumBal0101], Sum(zadol1.SumBal0101_pr) AS [Sum-SumBal0101_pr], Sum(zadol1.Sum_RabTekGod) AS [Sum-Sum_RabTekGod], Sum(zadol1.Sum_OplTekGod) AS [Sum-Sum_OplTekGod], Sum(zadol1.sumbalans1) AS [Sum-sumbalans1], Sum(zadol1.sumbalans2) AS [Sum-sumbalans2], Max(zadol1.D_pr) AS [Max-D_pr]
FROM ((zadol1 INNER JOIN dbo_StrEd ON zadol1.nStrEdDop = dbo_StrEd.nStrED) INNER JOIN dbo_CE ON dbo_StrEd.TypeCe = dbo_CE.nType) INNER JOIN dbo_VidPrihRash_BW ON zadol1.nType = dbo_VidPrihRash_BW.nRash
WHERE (((dbo_CE.nType)<>8 And (dbo_CE.nType)<>10) AND ((zadol1.BalChet)=7301) AND ((zadol1.Str_Bal)=244))
GROUP BY zadol1.VidZadol, zadol1.Str_Bal, dbo_VidPrihRash_BW.nBW, zadol1.VD1
ORDER BY zadol1.VidZadol, zadol1.Str_Bal, zadol1.VD1;

Запросы прописаны поочереде, их можно как-то объединить в один и записать проще?

Последний раз редактировалось ketrik5; 21.12.2010 в 17:09.
ketrik5 вне форума Ответить с цитированием
Старый 21.12.2010, 17:06   #4
ketrik5
 
Регистрация: 26.11.2009
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Teslenko_EA Посмотреть сообщение
Здравствуйте ketrik5.
"..как можно это сокращенней прописать.." - на сколько "сокращенней", не с чем сравнивать, выложите код или архив с БД и только после анализа можно будет думать над Вашим вопросом - "..как можно сделать чтоб меньше.."
Евгений.
здравствуйте евгений.
это прописано в модуле программы
DoCmd.OpenQuery "НК_РН_7301"
DoCmd.OpenQuery "РН_7301"
DoCmd.OpenQuery "Прочие_7301"

А сами запросы выглядят так:
INSERT INTO import1 ( ZKDZ_VIDZ, ZKDZ_IND, ZKDZ_KATZ, ZKDZ_VIDD, 0AMOUNT_011, 0AMOUNT_021, 0AMOUNT_031, 0AMOUNT_041, 0AMOUNT_051, 0AMOUNT_061, ZQUANT1_071 )
SELECT zadol1.VidZadol, zadol1.Str_Bal, dbo_VidPrihRash_BW.nBW AS Выражение1, zadol1.VD1, Sum(zadol1.SumBal0101) AS [Sum-SumBal0101], Sum(zadol1.SumBal0101_pr) AS [Sum-SumBal0101_pr], Sum(zadol1.Sum_RabTekGod) AS [Sum-Sum_RabTekGod], Sum(zadol1.Sum_OplTekGod) AS [Sum-Sum_OplTekGod], Sum(zadol1.sumbalans1) AS [Sum-sumbalans1], Sum(zadol1.sumbalans2) AS [Sum-sumbalans2], Max(zadol1.D_pr) AS [Max-D_pr]
FROM zadol1 INNER JOIN dbo_VidPrihRash_BW ON zadol1.nType = dbo_VidPrihRash_BW.nRash
WHERE (((zadol1.nStrEdDop)=10000120) AND ((zadol1.BalChet)=7301) AND ((zadol1.Str_Bal)=244))
GROUP BY zadol1.VidZadol, zadol1.Str_Bal, dbo_VidPrihRash_BW.nBW, zadol1.VD1
ORDER BY zadol1.VidZadol, zadol1.Str_Bal, zadol1.VD1;



INSERT INTO import1 ( ZKDZ_VIDZ, ZKDZ_IND, ZKDZ_KATZ, ZKDZ_VIDD, 0AMOUNT_012, 0AMOUNT_022, 0AMOUNT_032, 0AMOUNT_042, 0AMOUNT_052, 0AMOUNT_062, ZQUANT1_072 )
SELECT zadol1.VidZadol, zadol1.Str_Bal, dbo_VidPrihRash_BW.nBW AS Выражение1, zadol1.VD1, Sum(zadol1.SumBal0101) AS [Sum-SumBal0101], zadol1.SumBal0101_pr, Sum(zadol1.Sum_RabTekGod) AS [Sum-Sum_RabTekGod], Sum(zadol1.Sum_OplTekGod) AS [Sum-Sum_OplTekGod], Sum(zadol1.sumbalans1) AS [Sum-sumbalans1], Sum(zadol1.sumbalans2) AS [Sum-sumbalans2], Max(zadol1.D_pr) AS [Max-D_pr]
FROM ((zadol1 INNER JOIN dbo_StrEd ON zadol1.nStrEdDop = dbo_StrEd.nStrED) INNER JOIN dbo_CE ON dbo_StrEd.TypeCe = dbo_CE.nType) INNER JOIN dbo_VidPrihRash_BW ON zadol1.nType = dbo_VidPrihRash_BW.nRash
WHERE (((zadol1.nStrEdDop)<>10000120) AND ((dbo_StrEd.TypeCe)=8 Or (dbo_StrEd.TypeCe)=10) AND ((zadol1.BalChet)=7301) AND ((zadol1.Str_Bal)=244))
GROUP BY zadol1.VidZadol, zadol1.Str_Bal, dbo_VidPrihRash_BW.nBW, zadol1.VD1, zadol1.SumBal0101_pr
ORDER BY zadol1.VidZadol, zadol1.Str_Bal, zadol1.VD1;


INSERT INTO import1 ( ZKDZ_VIDZ, ZKDZ_IND, ZKDZ_KATZ, ZKDZ_VIDD, 0AMOUNT_013, 0AMOUNT_023, 0AMOUNT_033, 0AMOUNT_043, 0AMOUNT_053, 0AMOUNT_063, ZQUANT1_073 )
SELECT zadol1.VidZadol, zadol1.Str_Bal, dbo_VidPrihRash_BW.nBW AS Выражение1, zadol1.VD1, Sum(zadol1.SumBal0101) AS [Sum-SumBal0101], Sum(zadol1.SumBal0101_pr) AS [Sum-SumBal0101_pr], Sum(zadol1.Sum_RabTekGod) AS [Sum-Sum_RabTekGod], Sum(zadol1.Sum_OplTekGod) AS [Sum-Sum_OplTekGod], Sum(zadol1.sumbalans1) AS [Sum-sumbalans1], Sum(zadol1.sumbalans2) AS [Sum-sumbalans2], Max(zadol1.D_pr) AS [Max-D_pr]
FROM ((zadol1 INNER JOIN dbo_StrEd ON zadol1.nStrEdDop = dbo_StrEd.nStrED) INNER JOIN dbo_CE ON dbo_StrEd.TypeCe = dbo_CE.nType) INNER JOIN dbo_VidPrihRash_BW ON zadol1.nType = dbo_VidPrihRash_BW.nRash
WHERE (((dbo_CE.nType)<>8 And (dbo_CE.nType)<>10) AND ((zadol1.BalChet)=7301) AND ((zadol1.Str_Bal)=244))
GROUP BY zadol1.VidZadol, zadol1.Str_Bal, dbo_VidPrihRash_BW.nBW, zadol1.VD1
ORDER BY zadol1.VidZadol, zadol1.Str_Bal, zadol1.VD1;

Запросы прописаны поочереде, их можно как-то объединить в один и записать проще?
ketrik5 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как прописать программу Miha85193 Общие вопросы Delphi 6 12.07.2010 00:24
как прописать проверку toolButtons lexluter1988 Общие вопросы .NET 2 18.05.2010 20:22
Как правильно прописать? clanz Microsoft Office Access 1 26.02.2010 11:38
подскажите как прописать alexs2141 Помощь студентам 6 03.06.2008 14:32
Как прописать в HKEY_CURRENT_USER ? UnD)eaD)Snake Общие вопросы Delphi 4 27.07.2007 21:52