Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL запрос  [new]
Чингис
Member

Откуда:
Сообщений: 75
делаю запрос как ее лучше оптимизировать (долго грузит)? к примеру

SELECT MCACC_ID, TRUNC(SUM(BAL_IN),2) AS BAL_IN
FROM V_PCSALDO
WHERE ARCNO='2016/04' AND MCACC_ID in
(SELECT MCACC_ID
FROM V_PCSALDO
WHERE ARCNO='2016/06' AND
USL_ID IN (SELECT ID FROM TS_PCUSL WHERE ANL=1)
GROUP BY MCACC_ID
HAVING SUM(BAL_IN)>0) and
USL_ID IN (SELECT ID FROM TS_PCUSL WHERE ANL=1)
GROUP BY MCACC_ID
HAVING SUM(BAL_IN)>0
1 июл 16, 14:01    [19359503]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
начать читать про джойны и научится пользоваться кнопкой СРЦ в форуме..а то глаза сломать можно
1 июл 16, 14:07    [19359562]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
Чингис
Member

Откуда:
Сообщений: 75
SELECT MCACC_ID, TRUNC(SUM(BAL_IN),2) AS BAL_IN
    FROM V_PCSALDO
    WHERE ARCNO='2016/04' AND MCACC_ID in 
											(SELECT MCACC_ID
														FROM V_PCSALDO
												  WHERE ARCNO='2016/06' AND
														USL_ID IN (SELECT ID FROM TS_PCUSL WHERE ANL=1)
												  GROUP BY MCACC_ID
												 HAVING SUM(BAL_IN)>0) and
            USL_ID IN (SELECT ID FROM TS_PCUSL WHERE ANL=1)
      GROUP BY MCACC_ID
    HAVING SUM(BAL_IN)>0

спс не знал
join знаю
как всегда хочется быстро не ломая голову попробую через join
1 июл 16, 14:12    [19359602]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
Чингис
Member

Откуда:
Сообщений: 75
Maxx
начать читать про джойны и научится пользоваться кнопкой СРЦ в форуме..а то глаза сломать можно


как мне с joinом сделать?
голова не варит целый день в sql e
1 июл 16, 14:35    [19359774]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Дето так
   SELECT 
     x.MCACC_ID
   , TRUNC(SUM(x.BAL_IN),2) AS BAL_IN
   FROM V_PCSALDO x
     INNER JOIN TS_PCUSL y on x.USL_ID =y.ID 
    WHERE x.ARCNO='2016/04' 
	  AND y.ANL=1
    GROUP BY x.MCACC_ID
    HAVING SUM(x.BAL_IN)>0


ну и вапрос .. у вас в подзапросе дата по виду старше чем в асмом запросе - ето точно правильно?
1 июл 16, 15:17    [19360116]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
Чингис
Member

Откуда:
Сообщений: 75
Maxx
Дето так
   SELECT 
     x.MCACC_ID
   , TRUNC(SUM(x.BAL_IN),2) AS BAL_IN
   FROM V_PCSALDO x
     INNER JOIN TS_PCUSL y on x.USL_ID =y.ID 
    WHERE x.ARCNO='2016/04' 
	  AND y.ANL=1
    GROUP BY x.MCACC_ID
    HAVING SUM(x.BAL_IN)>0


ну и вапрос .. у вас в подзапросе дата по виду старше чем в асмом запросе - ето точно правильно?

да это дебеторы свыше 2х мес
деб 06 и изних деб 04
1 июл 16, 19:35    [19361206]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос  [new]
Чингис
Member

Откуда:
Сообщений: 75
до чего все просто было оказ
отдых и поел

select *
from
(SELECT MCACC_ID, TRUNC(SUM(BAL_IN),2) AS BAL_IN
    FROM V_PCSALDO
    WHERE ARCNO='2016/04' AND 											
            USL_ID IN (SELECT ID FROM TS_PCUSL WHERE ANL=1)
      GROUP BY MCACC_ID
    HAVING SUM(BAL_IN)>0) ap,


(SELECT MCACC_ID, TRUNC(SUM(BAL_IN),2) AS BAL_IN
    FROM V_PCSALDO
    WHERE ARCNO='2016/06' AND 											
            USL_ID IN (SELECT ID FROM TS_PCUSL WHERE ANL=1)
      GROUP BY MCACC_ID
    HAVING SUM(BAL_IN)>0) jun
where jun.MCACC_ID=ap.MCACC_ID(+)
1 июл 16, 20:07    [19361268]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить