|
Запросы по нескольким виртуальным таблицам регистров.
| ☑ |
0
ILM
гуру
03.11.11
✎
21:07
|
Всего мнений: 3
Коллективный разум: как более правильнее делать запросы по нескольким виртуальным таблицам разных регистров:
1) ЛЕВОЕ СОЕДИНЕНИЕ по отобранным полям
2) ОБЪЕДИНИТЬ ВСЕ, а потом СГРУППИРОВАТЬ
3) Может есть ещё способ
|
|
1
Господин ПЖ
03.11.11
✎
21:09
|
нет более правильно... есть более вменяемо плана выполнения запроса
|
|
2
rs_trade
03.11.11
✎
21:11
|
(0) зависит от того, что ты хочешь получить. нельзя говорить что левое соединение правильнее чем объединить все. или наоборот.
Другое |
|
3
МишельЛагранж
03.11.11
✎
21:23
|
я вообще против виртуальных таблиц в такой реализации!
лучше бы их не было вовсе, а 1с под давлением сделал бы что-нибудь путное.
Другое |
|
4
ILM
гуру
03.11.11
✎
21:31
|
1)
ВЫБРАТЬ
Регистр1.Документ,
Регистр1.НОменклатура,
Регистр1.КоличествоОстаток - ЕСТЬNULL(Регистр2.КоличествоОстаток, 0) КАК Результат
ИЗ
Регистр1.Остатки(&Дата, Документ = &Заказ) КАК Регистр1
ЛЕВОЕ СОЕДИНЕНИЕ
Регистр2.Остатки(&Дата, Документ = &Заказ) КАК Регистр2
ПО Регистр1.Документ = Регистр2.Документ
И Регистр1.НОменклатура = Регистр2.НОменклатура
2)
ВЫБРАТЬ
ВложенныйЗапрос.Документ,
ВложенныйЗапрос.НОменклатура,
СУММА(ВложенныйЗапрос.Результат)
ИЗ (ВЫБРАТЬ
Регистр1.Документ,
Регистр1.НОменклатура,
Регистр1.КоличествоОстаток КАК Результат
ИЗ
Регистр1.Остатки(&Дата, Документ = &Заказ) КАК Регистр1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Регистр2.Документ,
Регистр2.Номенклатура,
-Регистр2.КоличествоОстаток КАК Результат) КАК ВложенныйЗапрос
СГРУППИРОВАТЬ ПО
ВложенныйЗапрос.Документ,
ВложенныйЗапрос.НОменклатура
3) Это как?
|
|
5
ILM
гуру
03.11.11
✎
21:31
|
Ну как то более SQL-но ))
ЛЕВОЕ СОЕДИНЕНИЕ |
|
6
ilkoder
03.11.11
✎
21:36
|
То есть в первом регистре данные есть всегда, а во втором могут и не быть? а если наоборот, то результат с минусом?
|
|
7
ILM
гуру
04.11.11
✎
14:49
|
Те данные, что мне нужны есть всегда...
|
|