|
Сложный запрос | ☑ | ||
---|---|---|---|---|
0
tempaccount
06.09.13
✎
14:11
|
Товарищи, предстоит сложный запрос.
Есть справочник Дома, содержащий его наименования. Есть РС плана и РС фактов, в который заносятся по периодам Ресурс которых График, как проверить пустые ли у них графикики? П.с. Заранее спасибо, и прошу прощение за невнятное изложение. |
|||
1
butterbean
06.09.13
✎
14:13
|
нифига не понятно, но вроде-бы нужно просто запрос к СрезПоследних + отбор по График = ПустоеЗначениеГрафика
|
|||
2
Wobland
06.09.13
✎
14:13
|
ужас какой..
соединить и есть NULL? |
|||
3
tempaccount
06.09.13
✎
14:17
|
"ПланГрафикРаботСрезПоследних.График.Ссылка = Неопределенно"
Это условие проверит, существует ли график для выбранного дома и периода? |
|||
4
butterbean
06.09.13
✎
14:18
|
(3) нет..
что-то типа ПланГрафикРаботСрезПоследних.График = ЗНАЧЕНИЕ(Справочник.Графики.ПустаяСсылка) |
|||
5
z0001
06.09.13
✎
14:29
|
(0)выбрать те у которых есть и потом через "не в"
|
|||
6
z0001
06.09.13
✎
14:30
|
кстати о птичках - кто то знает насколько шутсро индексы используются при сравнениях с NULL?
|
|||
7
tempaccount
06.09.13
✎
14:43
|
Прошу прощения, сначала начну:
(Игра слов, т.к. пойду я с конца :) ) Результат (В идеале) запроса, хотелось бы получить такой: 1) Наименование дома, из справочника ДУДома. 2) Массив связанный с работами, ссылающимися к дом из Регистра Сведений ПланРабот 3) Массив связанный с фактичискими работами (по дням) из РС ФактРабот 4) В результат попадают только те дома, к которым есть хотя бы один факт или план. Придется объединять все три таблици. Хотя в первую очередь нужно просто сделать, хотелось бы узнать и как правильно. |
|||
8
z0001
06.09.13
✎
14:44
|
(7)ты не можешь даже начать? )))
|
|||
9
evorle145
06.09.13
✎
14:46
|
(0), отложи до понедельника.
|
|||
10
hhhh
06.09.13
✎
14:47
|
(7) сложный запрос - это когда 300 таблиц, а у вас 3 таблицы. Непохоже на сложный.
|
|||
11
z0001
06.09.13
✎
14:48
|
кури select )))
|
|||
12
tempaccount
06.09.13
✎
14:49
|
(10) Сложный для меня и понимания, разумеется.
(8) Пру минут назад я был уверен, что смог начать. Но когда в результате посыпалось название дома (Которое я сначала и хотел вывести) в количестве ссылок на него из РегистраСведений, я понял, что нужно читать еще |
|||
13
MSOliver
06.09.13
✎
14:50
|
(7) изучить как делается срез последних
|
|||
14
tempaccount
06.09.13
✎
14:52
|
Нужно было группировать
|
|||
15
tempaccount
06.09.13
✎
14:54
|
"ВЫБРАТЬ
ДУДома.Наименование ИЗ РегистрСведений.ПланГрафикРабот.СрезПоследних КАК ПланГрафикРаботСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДУДома КАК ДУДома ПО ПланГрафикРаботСрезПоследних.Дом = ДУДома.Ссылка СГРУППИРОВАТЬ ПО ДУДома.Наименование" Вроде бы верно, само-собой без условия периода для среза и тому подобных |
|||
16
tempaccount
06.09.13
✎
14:59
|
Не хочет объединиться с третьей таблицей ФАКТ дни.
И как (если соединю) поставить условие существования либо ПЛАНА либо ДНЯ, пока не понимаю, т.к. запрос выше вообще условие Где не содержит, а работает |
|||
17
tempaccount
06.09.13
✎
15:01
|
"ВЫБРАТЬ
ДУДома.Наименование ИЗ РегистрСведений.ПланГрафикРабот.СрезПоследних КАК ПланГрафикРаботСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДУДома КАК ДУДома ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПланФактДни КАК ПланФактДни ПО ДУДома.Ссылка = ПланФактДни.Дом.Ссылка ПО ПланГрафикРаботСрезПоследних.Дом = ДУДома.Ссылка СГРУППИРОВАТЬ ПО ДУДома.Наименование" |
|||
18
hhhh
06.09.13
✎
15:01
|
вот так правильно
"ВЫБРАТЬ РАЗЛИЧНЫЕ ПланГрафикРаботСрезПоследних.Дом ИЗ РегистрСведений.ПланГрафикРабот.СрезПоследних КАК ПланГрафикРаботСрезПоследних что вы размахнулись? |
|||
19
tempaccount
06.09.13
✎
15:11
|
(18)
Причина размаха: 2 регистра, а не 1 как у Вас. И дом должен идти, даже если один пуст, а другой нет, то дом проходит |
|||
20
tempaccount
06.09.13
✎
15:30
|
"ВЫБРАТЬ
ДУДома.Наименование ИЗ РегистрСведений.ПланФактДни КАК ПланФактДни ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДУДома КАК ДУДома ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПланГрафикРабот.СрезПоследних КАК ПланГрафикРаботСрезПоследних ПО ДУДома.Ссылка = ПланГрафикРаботСрезПоследних.Дом.Ссылка ПО ПланФактДни.Дом.Ссылка = ДУДома.Ссылка СГРУППИРОВАТЬ ПО ДУДома.Наименование" Этот запрос выводит Только те в которых заполнены ПланФактДни А если (17) то только в РегистрСведений.ПланГрафикРабот.СрезПоследних |
|||
21
tempaccount
06.09.13
✎
15:35
|
Чую, иду я не по тому пути. В условие бы перекинуть, а е объединять таблици
|
|||
22
hhhh
06.09.13
✎
15:41
|
(21) ну вот же. С NULL, как вам все пишут
ВЫБРАТЬ РАЗЛИЧНЫЕ ДурДома.Ссылка ИЗ Справочник.ДУДома КАК ДурДома ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПланФактДни КАК ПланФактДни ПО ДурДома.Ссылка = ПланГрафикРаботСрезПоследних.Дом ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПланГрафикРабот.СрезПоследних КАК ПланГрафикРаботСрезПоследних ПО ПланГрафикРаботСрезПоследних.Дом = ДурДома.Ссылка ГДЕ НЕ (ПланФактДни.Дом ЕСТЬ NULL) ИЛИ НЕ (ПланГрафикРаботСрезПоследних.Дом ЕСТЬ NULL) |
|||
23
hhhh
06.09.13
✎
15:42
|
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПланФактДни КАК ПланФактДни
ПО ДурДома.Ссылка = ПланФактДни.Дом |
|||
24
tempaccount
06.09.13
✎
15:50
|
||||
25
tempaccount
06.09.13
✎
15:55
|
(23) Сюда не попадают те, что из плана
|
|||
26
hhhh
06.09.13
✎
16:19
|
из какого?
|
|||
27
tempaccount
06.09.13
✎
16:22
|
ВЫБРАТЬ
| ПланГрафикРаботСрезПоследних.Дом |ПОМЕСТИТЬ ВТДома |ИЗ | РегистрСведений.ПланГрафикРабот.СрезПоследних КАК ПланГрафикРаботСрезПоследних | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ПланФактДни.Дом |ИЗ | РегистрСведений.ПланФактДни КАК ПланФактДни | |СГРУППИРОВАТЬ ПО | ПланФактДни.Дом |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТДома.Дом |ИЗ | ВТДома КАК ВТДома | |СГРУППИРОВАТЬ ПО | ВТДома.Дом Во, заработало. Пойду былокодить дальше. До скорого (Т.к. выводит только дома, а не все связанные с ними работы и тд) |
|||
28
z0001
06.09.13
✎
17:43
|
(21)профессиАнал )))
|
|||
29
z0001
06.09.13
✎
17:43
|
(28) в (27)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |