|
Что-то не соображу как запрос написать | ☑ | ||
---|---|---|---|---|
0
alexmobile
17.10.13
✎
19:44
|
Имеются три виртуальные таблицы (ВТ). ВТ1 - полный справочник статей затрат с полем "Статья". ВТ2 - данные по расходам поля "Статья","Ресурс","Рекв", ВТ3- сгруппированный список "Рекв" из ВТ2.
Требуется получить выходную таблицу с полным списком статей и значений ресурса для каждого реквизита ВТ2 независимо было-ли значение ресурса на данной статье. Для наглядности нарисую результат: Рекв1 Статья1 Ресурс1 Статья2 Ресурс2 ... СтатьяН РесурсН Рекв2 Статья1 Ресурс1 Статья2 Ресурс2 ... СтатьяН РесурсН ..... РеквН Статья1 Ресурс1 Статья2 Ресурс2 ... СтатьяН РесурсН |
|||
1
alexmobile
18.10.13
✎
08:06
|
апну пожалуй.
виртуальные читать как временные. |
|||
2
Лодырь
18.10.13
✎
08:10
|
Декартово произведение статей с реквизитами соедини левым соединением с ВТ2?
|
|||
3
alexmobile
18.10.13
✎
08:15
|
(2)В ВТ2 для некоторых реквизитов нет движений по статьям, соответственно и этих строк нету, а в результате они нужны с пустыми значениями ресурса.
|
|||
4
Лодырь
18.10.13
✎
08:16
|
(3) Поэтому и левое соединение. А вместо ресурса юзать ЕСТЬNULL(Ресурс)
|
|||
5
Лодырь
18.10.13
✎
08:17
|
точнее ЕСТЬNULL(Ресурс,"тут нихрена нету")
|
|||
6
alexmobile
18.10.13
✎
08:40
|
(2)
выбрать вт1.Статья, Вт2.Ресурс, ВТ2.Реквизит из ВТ1 как как вт1 левое соединение ВТ2 как вт2 по вт1.Статья=вт2.Статья Такой запрос не подходит. т.к. в результат не добавятся строки со статьями которых нет в ВТ2 Рекв1 Статья1 Ресурс1 Статья2 Ресурс2 (этой строки нету т.к. в ВТ2 нет такой статьи для рекв1. а нужна) ... СтатьяН РесурсН Рекв2 Статья1 Ресурс1 Статья2 Ресурс2 ... СтатьяН РесурсН ..... РеквН Статья1 Ресурс1 Статья2 Ресурс2 ... СтатьяН РесурсН |
|||
7
Мимохожий Однако
18.10.13
✎
08:52
|
Полное соединение пробовал?
|
|||
8
m-serg74
18.10.13
✎
08:56
|
(7) зачем полное если ВТ1 судя по (0) полный справочник статей...
(6) как при ЛЕВОМ попадут не все строки из ВТ1? |
|||
9
Лодырь
18.10.13
✎
09:00
|
ВЫБРАТЬ
ВложенныйЗапрос.Статья, ВложенныйЗапрос.Реквизит, ЕСТЬNULL(Вт2.Ресурс, "не было данных") КАК Поле1 ИЗ (ВЫБРАТЬ ВТ1.Статья КАК Статья, ВТ3.Реквизит КАК Реквизит ИЗ ВТ1 КАК ВТ1, ВТ3 КАК ВТ3) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2 ПО ВложенныйЗапрос.Статья = Вт2.Статья И ВложенныйЗапрос.Реквизит = Вт2.Реквизит |
|||
10
alexmobile
18.10.13
✎
09:04
|
(7) да
(8) вот так, не попадают щас попробую (9) |
|||
11
m-serg74
18.10.13
✎
09:07
|
(9) /с полным списком статей и значений ресурса для каждого реквизита ВТ2/
на фига в (9) ВЫБРАТЬ ВТ1.Статья КАК Статья, ВТ3.Реквизит КАК Реквизит ИЗ ВТ1 КАК ВТ1, ВТ3 КАК ВТ3 не проще тогда левое с соединением просто по статье |
|||
12
m-serg74
18.10.13
✎
09:10
|
+(11)
|
|||
13
m-serg74
18.10.13
✎
09:12
|
(11),(12) отставить (9) наверное правильно
|
|||
14
alexmobile
18.10.13
✎
09:12
|
(12)
нет. В ВТ2 для некоторых реквизитов нет движений по статьям, соответственно и этих строк нету, а в результате они нужны с пустыми значениями ресурса. |
|||
15
m-serg74
18.10.13
✎
09:14
|
(14) я в (13) написал уже
|
|||
16
alexmobile
18.10.13
✎
09:20
|
(9) нет. результат как при левом вт1 к вт2
|
|||
17
Лодырь
18.10.13
✎
09:24
|
(16) Не может быть.
|
|||
18
m-serg74
18.10.13
✎
09:43
|
(17) кстати может надо не к вложенному а к результату полного соединения статьи/реквизиты присоединить ВТ2
|
|||
19
m-serg74
18.10.13
✎
09:44
|
(18) опять отставить у тебя в (9) так и есть
|
|||
20
Sabbath
18.10.13
✎
09:47
|
(0) в 9 (9) написали, как и я думаю
|
|||
21
Sabbath
18.10.13
✎
09:50
|
(16) ну тебе же нужны все комбинации Статья+Рекв и к ним значения ресурса?
Статья+Рекв получается декартовым, а значение ресурса подсоединяется левым с использованием ЕСТЬNULL. Корчое как в (9) все. Или задача другая |
|||
22
alexmobile
18.10.13
✎
09:50
|
Да. в (9) все верно. я немного ошибся.
|
|||
23
alexmobile
18.10.13
✎
09:50
|
результат получен
|
|||
24
Sabbath
18.10.13
✎
09:51
|
(16) Только рекв бери не из регистра, наверно, если тебе нужны все значения, а из справочника, или где он у тебя там
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |