Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема ОСВ - прямой запрос из SQL Server (число прочтений - 3375 )
Nakeshi2
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 04. Июня 2008
ОСВ - прямой запрос из SQL Server
05. Июня 2008 :: 10:30
Печать  
Доброе время суток.

Пытаюсь сделать выборку - полный аналог формы ОСВ 62 за май месяц 2008 года.
Получилось выдернуть дебетовые и кредитовые обороты за период. Каким образом можно получить Сальдо на начало периода - Дебет и Кредит ?



Запрос выглядит следующим образом на текущий момент:

Код
Выбрать все
                            SELECT     '20080401' AS Дата, accdtid AS [Счет $Счет.Основной], MAX(vdtsc0) AS Номенклатура_вид, dtsc0 AS [Номенклатура $Субконто],
                                                  SUM(sum_) AS СНД, 0 AS ДО, 0 AS КО
                            FROM         (SELECT     id
                                                   FROM          _1saccs
                                                   WHERE      (planid = 809)) AS accnt, _1sentry entry
                            WHERE     (accdtid = accnt.id) AND (date_time_docid LIKE '20080401%') AND (provkind = ' ') AND (active = ' ')
                            GROUP BY accdtid, dtsc0
                            UNION ALL
                            SELECT     '20080401' AS Дата, accktid AS [Счет $Счет.Основной], MAX(vktsc0) AS Номенклатура_вид, ktsc0 AS [Номенклатура $Субконто],
                                                  - SUM(sum_) AS СНД, 0 AS ДО, 0 AS КО
                            FROM         (SELECT     id
                                                   FROM          _1saccs
                                                   WHERE      (planid = 809)) AS accnt, _1sentry entry
                            WHERE     (accktid = accnt.id) AND (date_time_docid LIKE '20080401%') AND (provkind = ' ') AND (active = ' ')
                            GROUP BY accktid, ktsc0

 




Заранее Спасибо.
  
Наверх
 
IP записан
 
Nakeshi2
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 04. Июня 2008
Re: ОСВ - прямой запрос из SQL Server
Ответ #1 - 05. Июня 2008 :: 10:32
Печать  
Прошу прощения - скопировал не тот запрос.

Вот "правильный".

Код
Выбрать все
SELECT DISTINCT TOP 100 PERCENT ss.*, Контрагенты.Наименование AS Expr1
FROM         dbo.DH321 Услуги LEFT OUTER JOIN
                          (SELECT     CONVERT(datetime, LEFT(date_time_docid, 8)) AS Дата, accdtid AS [Счет $Счет.Основной], MAX(vdtsc0) AS Номенклатура_вид,
                                                   dtsc0 AS [Номенклатура $Субконто], 0 AS СНД, SUM(sum_) AS ДО, 0 AS КО
                            FROM          (SELECT     id
                                                    FROM          _1saccs
                                                    WHERE      (planid = 809)) AS accnt, _1sentry entry
                            WHERE      (accdtid = accnt.id) AND (date_time_docid BETWEEN '20080501' AND '20080531') AND (provkind = ' ') AND (active = ' ')
                            GROUP BY date_time_docid, accdtid, dtsc0
                            UNION ALL
                            SELECT     CONVERT(datetime, LEFT(date_time_docid, 8)) AS Дата, accktid AS [Счет $Счет.Основной], MAX(vktsc0) AS Номенклатура_вид,
                                                  ktsc0 AS [Номенклатура $Субконто], 0 AS СНД, 0 AS ДО, SUM(sum_) AS КО
                            FROM         (SELECT     id
                                                   FROM          _1saccs
                                                   WHERE      (planid = 809)) AS accnt, _1sentry entry
                            WHERE     (accktid = accnt.id) AND (date_time_docid BETWEEN '20080501' AND '20080531') AND (provkind = ' ') AND (active = ' ')
                            GROUP BY date_time_docid, accktid, ktsc0) ss ON ss.[Номенклатура $Субконто] = Услуги.SP309 LEFT OUTER JOIN
                          (SELECT     TabSprGr2.DESCR AS Родитель2, TabSprGr1.DESCR AS Родитель, TabSpr.DESCR AS Наименование, TabSpr.ID,
                                                   TabSprGr1.ID AS TabSprGr1_ID
                            FROM          SC133 AS TabSpr LEFT OUTER JOIN
                                                   SC133 AS TabSprGr1 ON TabSpr.PARENTID = TabSprGr1.ID LEFT OUTER JOIN
                                                   SC133 AS TabSprGr2 ON TabSprGr1.PARENTID = TabSprGr2.ID
                            WHERE      TabSpr.ISFOLDER = 2) Контрагенты ON Услуги.SP309 = Контрагенты.ID
WHERE     (Контрагенты.Родитель = 'Васильев Олег')
ORDER BY Контрагенты.Наименование
 

  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ОСВ - прямой запрос из SQL Server
Ответ #2 - 05. Июня 2008 :: 10:53
Печать  
Итоги (остатки на начало квартала и месячные обороты) лежат в _1sbkttl.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
GEORG
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 43
Зарегистрирован: 15. Мая 2008
Re: ОСВ - прямой запрос из SQL Server
Ответ #3 - 05. Июня 2008 :: 10:55
Печать  
     просмотрите вложенный файл
  

22222.txt ( 3 KB | Загрузки )
Наверх
 
IP записан
 
Nakeshi2
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 04. Июня 2008
Re: ОСВ - прямой запрос из SQL Server
Ответ #4 - 05. Июня 2008 :: 10:56
Печать  
berezdetsky писал(а) 05. Июня 2008 :: 10:53:
Итоги (остатки на начало квартала и месячные обороты) лежат в _1sbkttl.


если добавляю
Код
Выбрать все
SELECT     '20080501' AS Дата, accid AS [Счет $Счет.Основной], MAX(vsc0) AS Номенклатура_вид, sc0 AS [Номенклатура $Субконто], SUM(sd)
								   AS СНД, 0 AS ДО, 0 AS КО
				    FROM	    (SELECT     id
								    FROM	    _1saccs
								    WHERE	(planid = 809) AND (schkod LIKE '%62.%')) AS accnt, _1sbkttl ttl
				    WHERE	(date = '20080501') AND (kind = '1') AND (accid = accnt.id)
				    GROUP BY accid, sc0
 



то всё по нулям в поле СНД. если же ставлю на начало периода - тоесть 20080401. То цифры совершенно не те.
  
Наверх
 
IP записан
 
Nakeshi2
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 04. Июня 2008
Re: ОСВ - прямой запрос из SQL Server
Ответ #5 - 05. Июня 2008 :: 11:04
Печать  
[quote author=GEORG link=1212661812/0#3 date=1212663357]      просмотрите вложенный файл[/quote]

Спасибо за ответ. Но к сожалению я не знаком со структурой 1с. и основная проблема - это именно из всей каши 1с овских таблиц - и неинтуитивноназванных полей внутри - выципить именно необходимые данные.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ОСВ - прямой запрос из SQL Server
Ответ #6 - 05. Июня 2008 :: 11:04
Печать  
select SUM(sd + obtd1 - obkt1)
...
where (date = '20080401')
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Nakeshi2
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 9
Зарегистрирован: 04. Июня 2008
Re: ОСВ - прямой запрос из SQL Server
Ответ #7 - 05. Июня 2008 :: 11:19
Печать  
berezdetsky писал(а) 05. Июня 2008 :: 11:04:
select SUM(sd + obtd1 - obkt1)
...
where (date = '20080401')



Так всё просто - это возможно ? =)

Спасибо большое - всё получилось
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать