Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Помогите с вложенным запросом (число прочтений - 3433 )
Kind
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 16. Августа 2006
Помогите с вложенным запросом
14. Декабря 2006 :: 18:33
Печать  
Код
Выбрать все
		ТекстЗапроса = "
		|SELECT
		|	Спр.ID as [Лицевой $Справочник.ЛицевыеСчета]
		|	Истор.Значение as [Значение $Число]
		|FROM
		|	$Справочник.ЛицевыеСчета as Спр
		|LEFT JOIN (
		|	SELECT TOP 1
		|	СпрИстор.ID  Знач
		|	FROM
		|		$Справочник.КоличествоЖильцов_История as СпрИстор
		|	WHERE ($СпрИстор.ДатаЗнач <= :ДатаКонца~~)
		|	ORDER BY $СпрИстор.ДатаЗнач DESC
		|	, СпрИстор.ID DESC
		|) as Истор ON Истор.ParentExt = Спр.ID"; 


Нужно получить весь список элементов справочника ЛицевыеСчета с указанием одного элемента подчиненного справочника КоличествоЖильцов_История. 
ругается на
: Incorrect syntax near 'Истор'.
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Помогите с вложенным запросом
Ответ #1 - 14. Декабря 2006 :: 18:35
Печать  
Запятую забыл поставить перед Истор Улыбка
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


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

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите с вложенным запросом
Ответ #2 - 14. Декабря 2006 :: 18:36
Печать  
Может так поможет (если без извратов)

Max(Истор.Значение) as [Значение $Число]
--Тут обычное соединение без вложенного запроса
--А в конце
Grop by Спр.ID
  

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


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 16. Августа 2006
Re: Помогите с вложенным запросом
Ответ #3 - 14. Декабря 2006 :: 18:39
Печать  
Цитата:
Может так поможет (если без извратов)

Max(Истор.Значение) as [Значение $Число]
--Тут обычное соединение без вложенного запроса
--А в конце
Grop by Спр.ID

Так не пойдет, нужно именно по дате значения.
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


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

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите с вложенным запросом
Ответ #4 - 14. Декабря 2006 :: 18:43
Печать  
Ну в соединении условие по дате значения

Left join $Справочник.КоличествоЖильцов_История as СпрИстор ON СпрИстор.Parentex = Спр.ID
WHERE ($СпрИстор.ДатаЗнач <= :ДатаКонца~~)
  

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


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 16. Августа 2006
Re: Помогите с вложенным запросом
Ответ #5 - 14. Декабря 2006 :: 18:54
Печать  
Uzhast писал(а) 14. Декабря 2006 :: 18:35:
Запятую забыл поставить перед Истор Улыбка

Запятую поставил. Улыбка
Теперь ругается на
Invalid column name 'ParentExt'
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Помогите с вложенным запросом
Ответ #6 - 14. Декабря 2006 :: 19:00
Печать  
Kind писал(а) 14. Декабря 2006 :: 18:54:
Запятую поставил. Улыбка
Теперь ругается на
Invalid column name 'ParentExt'

Правильно ругается. Потому что в подзапросе Истор, нет колонки ParentExt. Либо добавь выборку этой колонки, либо переделай запрос.
  
Наверх
 
IP записан
 
Kind
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 16. Августа 2006
Re: Помогите с вложенным запросом
Ответ #7 - 14. Декабря 2006 :: 19:25
Печать  
Код
Выбрать все
		ВидСпр = "КоличествоЖильцов_История";
		ТекстЗапроса = "
		|SELECT
		|	Спр.ID as [Лицевой $Справочник.ЛицевыеСчета]
		|,	Истор.Значение as [Значение $Число]
		|FROM
		|	$Справочник.ЛицевыеСчета as Спр
		|LEFT JOIN (
		|	SELECT TOP 1
		|	$СпрИстор.Значение  Значение
		|,   СпрИстор.ParentExt Род
		|	FROM
		|		$Справочник.КоличествоЖильцов_История as СпрИстор
		|	WHERE ($СпрИстор.ДатаЗнач <= :ДатаКонца~~)
		|	ORDER BY $СпрИстор.ДатаЗнач DESC
		|	, СпрИстор.ID DESC
		|) as Истор ON Истор.Род = Спр.ID"; 



Вот  в таком виде ошибок нет, но на выходе кол жильцов у всех ноль. Я так понимаю во вложенный запрос надо передать Cпр.ID и добавить в условие. Как это сделать?
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


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

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите с вложенным запросом
Ответ #8 - 14. Декабря 2006 :: 19:54
Печать  
Попробовать мой вариант принципиально не хочешь?  Ужас
  

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


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

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите с вложенным запросом
Ответ #9 - 14. Декабря 2006 :: 20:06
Печать  
Вот пример для Номенклатуры и подчиненных ей Цен (мне так проще  Улыбка), переделай для себя:

Код
Выбрать все
|SELECT Номенклатура.ID [Ссылка $Справочник.Номенклатура]
		|, Max($Цены.Валюта) [Валюта $Справочник.Валюты]
		|FROM $Справочник.Номенклатура AS Номенклатура With (NOLOCK)
		|	LEFT JOIN $Справочник.Цены AS Цены With (NOLOCK) ON Номенклатура.ID = Цены.PARENTEXT
		|	WHERE ($Цены.ТипЦен <> $ПустойИд)
		|GROUP BY Номенклатура.ID 


  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать