![]() |
|
СКД отбор при связи наборов данных. | ☑ | ||
---|---|---|---|---|
0
Mustang
07.02.14
✎
14:16
|
Здравствуйте, подскажите в решении следующей задачи:
Пример запроса в СКД: Select //Таблица №1 РегистрТоварыНаСкладах.Номенклатура as Номенклатура, РегистрТоварыНаСкладах.Характеристика as Характеристика, РегистрТоварыНаСкладах.КоличествоBalance as Количество Into ТаблицаТоварыНаСкладах From AccumulationRegister.ТоварыНаСкладах.Balance as РегистрТоварыНаСкладах {Where РегистрТоварыНаСкладах.Склад.* } ; Select //Таблица №2 РегистрТоварыНаСкладах.Номенклатура as Номенклатура, РегистрТоварыНаСкладах.Характеристика as Характеристика, РегистрТоварыНаСкладах.КоличествоBalance as Количество, ТаблицаТоварыНаСкладах.Количество as КоличествоСоединение {Select Номенклатура.*, Характеристика.*, Количество, КоличествоСоединение } From AccumulationRegister.ТоварыНаСкладах.Balance as РегистрТоварыНаСкладах Left join ТаблицаТоварыНаСкладах as ТаблицаТоварыНаСкладах on ((ТаблицаТоварыНаСкладах.Номенклатура = РегистрТоварыНаСкладах.Номенклатура) and (ТаблицаТоварыНаСкладах.Характеристика = РегистрТоварыНаСкладах.Характеристика)) Этот запрос позволяет сделать отбор по "Складу" только по первой таблице во второй таблице фильтр на "Склад" не действует. Если тоже самое сделать разделив таблицы в разные наборы данных и соедниение сделать через "Связь наборов данных", то отбор уже действует на обе таблицы. Иными словами получается внутренне соединение, а не левое. Хотя в описаниях сказано что "Связь наборов данных" аналогичено левому соединению. Запросы наборов данных: Select //Набор данных №1 РегистрТоварыНаСкладах.Номенклатура as Номенклатура, РегистрТоварыНаСкладах.Характеристика as Характеристика, РегистрТоварыНаСкладах.КоличествоBalance as Количество {Select Номенклатура.*, Характеристика.*, Количество } From AccumulationRegister.ТоварыНаСкладах.Balance as РегистрТоварыНаСкладах Select //Набор данных №2 РегистрТоварыНаСкладах.Номенклатура as Номенклатура, РегистрТоварыНаСкладах.Характеристика as Характеристика, РегистрТоварыНаСкладах.КоличествоBalance as КоличествоСоединение Into ТаблицаТоварыНаСкладах From AccumulationRegister.ТоварыНаСкладах.Balance as РегистрТоварыНаСкладах {Where РегистрТоварыНаСкладах.Склад.* } ; Select ТаблицаТоварыНаСкладах.Номенклатура as Номенклатура, ТаблицаТоварыНаСкладах.Характеристика as Характеристика, ТаблицаТоварыНаСкладах.КоличествоСоединение as КоличествоСоединение {Select Номенклатура.*, Характеристика.*, КоличествоСоединение } From ТаблицаТоварыНаСкладах as ТаблицаТоварыНаСкладах Все запросы не реальные, а сделаны для упрощения понимания задачи! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |