Переключение на Главную Страницу Страницы: 1 [2] 3 4  ОтправитьПечать
Очень популярная тема (более 25 ответов) Учусь писать запросы...ошибки ...помогите разобрат (число прочтений - 13906 )
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Учусь писать запросы...ошибки ...помогите разо
Ответ #15 - 14. Ноября 2007 :: 08:54
Печать  
Вот еще какая проблемка возникла, может кто поможет.

Как можно правильно сгруппировать и отсортировать эл-ты при 4-уровневой стр-ре справочника:

Например:
Компы-Интел-Товар1
Компы-Интел-Интел1-Товар2

Надо, чтобы товар1 и товар 2 при группировке шли в одной группе (по Интел).
По родителю не получается, поскольку родители разные...
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Учусь писать запросы...ошибки ...помогите разо
Ответ #16 - 14. Ноября 2007 :: 09:02
Печать  
Можно ли как-то в запросе выбрать одного общего родителя Интел для обоих товаров?
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Учусь писать запросы...ошибки ...помогите разо
Ответ #17 - 14. Ноября 2007 :: 18:57
Печать  
Жжош
Заведи реквизит какой-то, который их бы объединял и делу конец
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Учусь писать запросы...ошибки ...помогите разо
Ответ #18 - 16. Ноября 2007 :: 09:03
Печать  
А ВТ "Остатки" позволяет ли выводить записи с нулевыми остатками?

А то когда "ОстаткиОбороты" использую, выводит и нулевые и ненулевые, а "Остатки" показывает только ненулевые...
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Учусь писать запросы...ошибки ...помогите разо
Ответ #19 - 16. Ноября 2007 :: 09:06
Печать  
Соединяй со справочником номенклатуры
  
Наверх
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Учусь писать запросы...ошибки ...помогите разо
Ответ #20 - 16. Ноября 2007 :: 09:15
Печать  
Вообще мне надо объединить данные из двух регистров остатков: выводить записи, где хотя бы по одному регистру остатки ненулевые...
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Учусь писать запросы...ошибки ...помогите разо
Ответ #21 - 16. Ноября 2007 :: 09:22
Печать  
Из одного регистра беру - Товар, Склад, ОстатокТовара;
Из другого - Товар, Склад, РезервТовара

Если объединяю по Товар, Склад, не выводит нулевых записей из первого рег, где есть ненулевые во втором. Впрочем, и без объединения тоже нулевых не выводит.

Думаю вот, как лучше эту проблему решить
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Учусь писать запросы...ошибки ...помогите разо
Ответ #22 - 16. Ноября 2007 :: 09:52
Печать  
Код
Выбрать все
			ТекстЗапроса = "
			|SELECT Запрос.Склад [Склад $Справочник.МестаХранения]
			|	, SUM(Запрос.Остаток) Остаток
			|	, SUM(Запрос.Резерв) Резерв
			|FROM
			|(
			|SELECT ОстаткиТоваровОстатки.ОстатокТовараОстаток Остаток
			|	, 0 Резерв
			|	, ОстаткиТоваровОстатки.Склад Склад
			|FROM $РегистрОстатки.ОстаткиТоваров(,,
			|		(Товар = :ВыбТовар)
			|		,
			|		Склад,
			|		ОстатокТовара) AS ОстаткиТоваровОстатки
			|
			|UNION ALL
			|
			|SELECT 0 Остаток
			|	, РезервТовараПоЗаявкеОстатки.РезервОстаток Резерв
			|	, РезервТовараПоЗаявкеОстатки.Склад Склад
			|FROM $РегистрОстатки.РезервТовараПоЗаявке(,,
			|		(Товар = :ВыбТовар)
			|		,
			|		Склад,
			|		Резерв) AS РезервТовараПоЗаявкеОстатки
			|
			|UNION ALL
			|
			|SELECT 0 Остаток
			|	, ВременныйРезерв.Res Резерв
			|	, ВременныйРезерв.Skl Склад
			|FROM Tempost AS ВременныйРезерв (NOLOCK)
			|WHERE	ВременныйРезерв.Tov = :ВыбТовар
			|) AS Запрос
			|GROUP BY Склад
			|";

 

  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Учусь писать запросы...ошибки ...помогите разо
Ответ #23 - 19. Ноября 2007 :: 14:02
Печать  
О.К., спасибо, все полетело!
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Учусь писать запросы...ошибки ...помогите разо
Ответ #24 - 19. Ноября 2007 :: 14:07
Печать  
Такой еще вопрос.

Надо сделать условие в запросе на подразделение. ВыбПодразд - элемент в справочнике типа ГРУППА, а не элемент.

Если писать так:

Recordset.УложитьСписокОбъектов(ВыбПодразд,"#ГруппаПодр","ОргСтруктура");
Текст = Текст + "Подразделение IN (SELECT Val FROM #ГруппаПодр)";


Не выдает ничего.

-------------------
Если так:

Recordset.УстановитьТекстовыйПараметр("ВыбПодразд",ВыбПодразд);
Текст = Текст + "Подразделение=:ВыбПодразд";

Выдает все записи по всем подразделениям...

Соотвественно возникает вопрос: как в такой ситуации сделать в запросе отбор по подразделению?

  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Учусь писать запросы...ошибки ...помогите разо
Ответ #25 - 19. Ноября 2007 :: 14:08
Печать  
То есть ВыбПодр - это конкретный элемент (например, магазин такой-то), но типа группа (включает элементы должности)
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Учусь писать запросы...ошибки ...помогите разо
Ответ #26 - 19. Ноября 2007 :: 14:09
Печать  
И надо сделать отбор ПО МАГАЗИНУ
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Учусь писать запросы...ошибки ...помогите разо
Ответ #27 - 19. Ноября 2007 :: 14:15
Печать  
Стандартными средствами 1С делал так:

ТекстЗапроса = ТекстЗапроса + "Условие (Подразделение.ПринадлежитГруппе(ВыбПодразд)=1)
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Учусь писать запросы...ошибки ...помогите разо
Ответ #28 - 19. Ноября 2007 :: 14:27
Печать  
Neo писал(а) 19. Ноября 2007 :: 14:15:
Стандартными средствами 1С делал так:

ТекстЗапроса = ТекстЗапроса + "Условие (Подразделение.ПринадлежитГруппе(ВыбПодразд)=1)

Ну тогда наверное так:
Код
Выбрать все
Подразделение.ParentID=:ВыбПодразд 


только это будет работать для прямого (первого) родителя
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Учусь писать запросы...ошибки ...помогите разо
Ответ #29 - 20. Ноября 2007 :: 10:22
Печать  
Где-то видимо закралась глупая ошибка, никак не могу выловить. Может, на свежую голову может кто поможет.

Короче, такой запрос:

====================================
   Текст="
   |SELECT
   |Рег.Товар as [Товар $Справочник.Товары],
   |Рег.Склад as [Склад $Справочник.Склады],
   |Sum(Рег.ОстатокТовараОстаток) as Количество,
   |0 Резерв,
   |Sum(Рег.ВалютнаяСтоимостьОстаток) as ВалСтоим,
   |Max(СпрТов.Code) as Код,
   |Max($СпрТов.Производитель) as [ПРОИЗВ $Справочник.Контрагенты],
   |Max(СпрСкл.Code) as КодСкл,
   |Max($СпрСкл.Подразделение) as [Подразд $Справочник.ОргСтруктура]
   |FROM
   |$РегистрОстатки.ОстаткиТоваров(:КонДата~,,";
     
   
Если ВыбТов.Выбран()=1 Тогда
Если ВыбТов.ЭтоГруппа() = 1 Тогда
Recordset.УложитьСписокОбъектов(ВыбТов,"#ГруппаТов","Товары");
Текст=Текст+"Товар IN (SELECT Val FROM #ГруппаТов)";
Иначе
Recordset.УстановитьТекстовыйПараметр("ВыбТов",ВыбТов);
Текст=Текст+"Товар=:ВыбТов";
КонецЕсли;
КонецЕсли;

     Текст=Текст+"
     |,(Товар,Склад),(ОстатокТовара,ВалютнаяСтоимость)) as Рег
     |INNER JOIN
     |$Справочник.Товары as СпрТов With (NOLOCK) ON Рег.Товар=СпрТов.ID
     |INNER JOIN
     |$Справочник.Склады as СпрСкл With (NOLOCK) ON Рег.Склад=СпрСкл.ID
     |GROUP BY
     |Рег.Склад, Рег.Товар                                                   
     |";

===============================
-работает, все выводит, в том числе производителя как надо.

Но как только добавляю:

-----------------------------------------------------
Если ВыбПроизводит.Выбран()=1 Тогда
Recordset.УстановитьТекстовыйПараметр("ВыбПроизводит",ВыбПроизводит);
Текст=Текст+" AND ПРОИЗВ=:ВыбПроизводит";
КонецЕсли;
-----------------------------------------------------

ругается - State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'ПРОИЗВ.

Пробовал ментять имя колонки в запросе и условии, вываливает то же самое...

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 4 
ОтправитьПечать