Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Почему: "Получаемая строка превысит допустимые размеры"? (число прочтений - 10868 )
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Почему: "Получаемая строка превысит допустимые размеры"?
Ответ #15 - 22. Апреля 2009 :: 20:11
Печать  
зы: а странное, потому что вы к оборотам джойните остатки left джойном, при этом обороты разворачиваете до второго субконто, да и еще и до документов. Непонятно шо це будеУлыбка но может вам это и надо фзУлыбка
  
Наверх
 
IP записан
 
Ptitz
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 21. Июля 2008
Re: Почему: "Получаемая строка превысит допустимые размеры"?
Ответ #16 - 22. Апреля 2009 :: 21:06
Печать  
Цитата:
author=alexdd link=1239370797/0#14 date=1240430467так я же написал выше: оберните, то что джойните в подзапрос(скобки поставьте left join (select ..from..) as vt on ... )

а. Смущает смысловое содержание запроса? Улыбка Так это я пыталась на скорую руку пример склепать из подручного материала. Чтобы разобраться. А на деле мне надо будет скрещивать Обороты и ОстаткиИОбороты. Чтобы, например, показать продажи и остатки начальные и конечные.
Посмотрев на ваш ответ, я пыталась в скобки заключать. Оно начало ругаться на ON. Завтра (сегодня) на свежую голову уточню.
  
Наверх
 
IP записан
 
Ptitz
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 21. Июля 2008
Re: Почему: "Получаемая строка превысит допустимые размеры"?
Ответ #17 - 22. Апреля 2009 :: 21:13
Печать  
зы: ни-ни-ни! никаких документов. Измерения будут одинаковы в обоих запросах. А лефт чтобы остатки были только по позициям, по которым прошли продажи. А вообще, отдам это на откуп пользователей галочками определять, выводить все остаки или только по проданным.
Пример косой, не спорю.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Почему: "Получаемая строка превысит допустимые размеры"?
Ответ #18 - 23. Апреля 2009 :: 06:35
Печать  
Ptitz писал(а) 22. Апреля 2009 :: 17:36:
Возжно ли объединить, например, БИОбороты и БИОстатки через LEFT JOIN?

Круглые глаза
Код
Выбрать все
select *
from (select ...
		from $БИОбороты()) sq1
	left join (select ...
		from $БИОстатки()) sq2 on sq1... = sq2... 

  

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


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 21. Июля 2008
Re: Почему: "Получаемая строка превысит допустимые размеры"?
Ответ #19 - 23. Апреля 2009 :: 08:08
Печать  
что-то не выходит.
Вот 2 варианта:
Код
Выбрать все
SELECT * FROM
	(SELECT Счет [Счет $Счет.Основной]
		, Субконто1 [ТМЦ $Субконто]
		, Субконто2 [Контрагент $Субконто]
		, КоличествоОборотДт AS Кво90
		, СуммаОборотДт AS Сумма90
		, Субконто1_вид ТМЦ_вид
		, Субконто2_вид Контрагент_вид
		, Right(ПозицияДокумента, 9) [Док $Документ]
		, ВидДокумента Док_вид
	FROM $БИОбороты.Основной(:Дата1, :Дата2 ~,
			Документ,,
			(Счет IN (SELECT Val FROM #Acc)),
			(ТМЦ,Контрагенты),,,
		))БИОборотыОсновной
	LEFT JOIN
	(SELECT Счет [СчетО $Счет.Основной]
		, Субконто1 [ТМЦО $Субконто]
		, Субконто1_вид ТМЦО_вид
		, СуммаОстаток AS СуммаОст
	FROM $БИОстатки.Основной(:Дата1,,(Счет IN (SELECT Val FROM #Acc)),
			ТМЦ,
		)) БИОстаткиОсновной ON БИОборотыОсновной.Субконто1 = БИОстаткиОсновной.Субконто1 



Ругается на: ]Incorrect syntax near ')'.

Код
Выбрать все
SELECT * FROM
	(SELECT Счет [Счет $Счет.Основной]
		, Субконто1 [ТМЦ $Субконто]
		, Субконто2 [Контрагент $Субконто]
		, КоличествоОборотДт AS Кво90
		, СуммаОборотДт AS Сумма90
		, Субконто1_вид ТМЦ_вид
		, Субконто2_вид Контрагент_вид
		, Right(ПозицияДокумента, 9) [Док $Документ]
		, ВидДокумента Док_вид
	FROM $БИОбороты.Основной(:Дата1, :Дата2 ~,
			Документ,,
			(Счет IN (SELECT Val FROM #Acc)),
			(ТМЦ,Контрагенты),,,
		)БИОборотыОсновной) БИОборотыОсновной
	LEFT JOIN
	(SELECT Счет [СчетО $Счет.Основной]
		, Субконто1 [ТМЦО $Субконто]
		, Субконто1_вид ТМЦО_вид
		, СуммаОстаток AS СуммаОст
	FROM $БИОстатки.Основной(:Дата1,,(Счет IN (SELECT Val FROM #Acc)),
			ТМЦ,
		)БИОстаткиОсновной) БИОстаткиОсновной ON БИОборотыОсновной.Субконто1 = БИОстаткиОсновной.Субконто1 


Ругается: Invalid column name 'Субконто1'

Ещё пробовала штук 20 вариаций на этот мотив, вид сбоку...
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Почему: "Получаемая строка превысит допустимые размеры"?
Ответ #20 - 23. Апреля 2009 :: 08:17
Печать  
Во втором варианте ошибок меньше.  Улыбка Осталось

БИОборотыОсновной.Субконто1 = БИОстаткиОсновной.Субконто1

исправить - полей Субконто1 нет в обоих подзапросах.

  

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


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 21. Июля 2008
Re: Почему: "Получаемая строка превысит допустимые размеры"?
Ответ #21 - 23. Апреля 2009 :: 08:28
Печать  
berezdetsky писал(а) 23. Апреля 2009 :: 08:17:
полей Субконто1 нет в обоих подзапросах.

Как так? А какие есть? ТМЦ и ТМЦО? Так вариант
Код
Выбрать все
SELECT * FROM
	(SELECT Счет [Счет $Счет.Основной]
		, Субконто1 [ТМЦ $Субконто]
		, Субконто2 [Контрагент $Субконто]
		, КоличествоОборотДт AS Кво90
		, СуммаОборотДт AS Сумма90
		, Субконто1_вид ТМЦ_вид
		, Субконто2_вид Контрагент_вид
		, Right(ПозицияДокумента, 9) [Док $Документ]
		, ВидДокумента Док_вид
	FROM $БИОбороты.Основной(:Дата1, :Дата2 ~,
			Документ,,
			(Счет IN (SELECT Val FROM #Acc)),
			(ТМЦ,Контрагенты),,,
		)БИОборотыОсновной) БИОборотыОсновной
	LEFT JOIN
	(SELECT Счет [СчетО $Счет.Основной]
		, Субконто1 [ТМЦО $Субконто]
		, Субконто1_вид ТМЦО_вид
		, СуммаОстаток AS СуммаОст
	FROM $БИОстатки.Основной(:Дата1,,(Счет IN (SELECT Val FROM #Acc)),
			ТМЦ,
		)БИОстаткиОсновной) БИОстаткиОсновной ON БИОборотыОсновной.ТМЦ = БИОстаткиОсновной.ТМЦО 


Выдаёт Invalid column name 'ТМЦ'
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Почему: "Получаемая строка превысит допустимые размеры"?
Ответ #22 - 23. Апреля 2009 :: 08:43
Печать  
Поля у тебя называются [ТМЦ $Субконто] и [ТМЦО $Субконто]. В ТМЦ и ТМЦО с типизацией они превращаются на этапе получения результата в 1С. Соответственно, типизацию в подзапросах обычно не прописывают. Но, если уже написала, пиши в соединении

БИОборотыОсновной.[ТМЦ $Субконто] = БИОстаткиОсновной.[ТМЦО $Субконто]
  

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


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 21. Июля 2008
Re: Почему: "Получаемая строка превысит допустимые размеры"?
Ответ #23 - 23. Апреля 2009 :: 08:57
Печать  
berezdetsky писал(а) 23. Апреля 2009 :: 08:43:
Поля у тебя называются [ТМЦ $Субконто] и [ТМЦО $Субконто].

Мама...  
Получилось таки! Улыбка Спасибо за шефство, я стараюсь, чесслово.
  
Наверх
 
IP записан
 
Ptitz
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 21. Июля 2008
Re: Почему: "Получаемая строка превысит допустимые размеры"?
Ответ #24 - 13. Мая 2009 :: 12:15
Печать  
Всё было замечательно и вдруг. Простой запрос, а фильтр по ТМЦ не работает. Если ставим условие на ТМЦ, то запрос пустой. Фильтр по местам хранения работает нормально. Единственная особенность: тип субконто "ТМЦ" - "Справочник" неопределённого вида.
Код
Выбрать все
SELECT
		 БИОстаткиОбороты.Субконто1 [ТМЦ $Субконто]
		, БИОстаткиОбороты.Субконто1_вид ТМЦ_вид
		, БИОстаткиОбороты.Субконто2 [МестаХранения $Субконто]
		, БИОстаткиОбороты.Субконто2_вид МестаХранения_вид
		, БИОстаткиОбороты.КоличествоНачальныйОстаток AS НачКво
		, (БИОстаткиОбороты.КоличествоКонечныйОстаток) AS КонКво
	FROM $БИОстаткиОбороты.Основной(:Дата1, :Дата2 ~,
			,,,
			(Счет IN (SELECT Val FROM #Acc)),
			(ТМЦ,МестаХранения),(Субконто1 IN (SELECT Val FROM #TC))AND(Субконто2 IN (SELECT Val FROM #TM))
		) AS БИОстаткиОбороты
WHERE ((КоличествоНачальныйОстаток <>0)OR(КоличествоКонечныйОстаток <>0))
 


Что делать?
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Почему: "Получаемая строка превысит допустимые размеры"?
Ответ #25 - 13. Мая 2009 :: 12:27
Печать  
УложитьСписокОбъектов13()?
  
Наверх
 
IP записан
 
Ptitz
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 21. Июля 2008
Re: Почему: "Получаемая строка превысит допустимые размеры"?
Ответ #26 - 13. Мая 2009 :: 12:51
Печать  
alexdd писал(а) 22. Апреля 2009 :: 20:01:


Про те запросы я уже разобралась и всё заработало, спасибо Вам и berezdetsky Улыбка

Я просто не хочу плодить темы, поэтому пишу в этой новую проблему.
  
Наверх
 
IP записан
 
Ptitz
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 21. Июля 2008
Re: Почему: "Получаемая строка превысит допустимые размеры"?
Ответ #27 - 13. Мая 2009 :: 13:11
Печать  
Ёлки, отвечаю чёрти на что  Нерешительный, сорри.
Да, помогло, спасибо! только вот с фильтром по группе справочника как-то не хорошо получится...
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Почему: "Получаемая строка превысит допустимые размеры"?
Ответ #28 - 13. Мая 2009 :: 13:35
Печать  
Улыбка
мда, с группами не хорошо, ну тогда все-таки УложитьСписокОбъектов() и
Субконто1 in (select $ВидСправочника36.ТМЦ + val from #TC)

или
left(Субконто1,4) = $ВидСправочника36.ТМЦ and right(Субконто1,9) in (select val from #TC)
что будет быстрее не знаю, нужно проверить
  
Наверх
 
IP записан
 
Ptitz
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 21. Июля 2008
Re: Почему: "Получаемая строка превысит допустимые размеры"?
Ответ #29 - 13. Мая 2009 :: 13:39
Печать  
Спасибо... Улыбка буду пробовать
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать