|
Условие и выбор в запросе [Добавить в закладки] #1 (permalink) | ☑ | ||
---|---|---|---|---|
0
S89K
23.09.14
✎
11:17
|
Добрый день. Есть у меня такой работающий запрос:
Запрос.Текст = "ВЫБРАТЬ | ДХМ_ПаспортИзделияТабличнаяЧасть235.Узел КАК Узел, | ДХМ_ПаспортИзделияТабличнаяЧасть235.Деталь КАК Деталь, | ДХМ_ПаспортИзделияТабличнаяЧасть235.Материал КАК Материал, | ДХМ_ПаспортИзделияТабличнаяЧасть235.ПротоколИсследования КАК ПротХим, | ДХМ_ПаспортИзделияТабличнаяЧасть235.ПротоколИсследования2 КАК ПротМех, | ТабХим.C, | ТабХим.Mn, | ТабХим.Si, | ТабХим.S, | ТабХим.P, | ТабХим.Cr, | ТабХим.Ni, | ТабХим.Ti, | ТабХим.Mo, | ТабХим.Al, | ТабХим.W, | ТабХим.V, | ТабХим.Nb, | ТабХим.Cu, | ТабМех.ТипОбразца, | ТабМех.ПределТекучести, | ТабМех.ВрСопр, | ТабМех.Удл, | ТабМех.Суж, | ТабМех.НомерПлавки, | ТабМех.НомерПартии, | ТабМех.Темп, | ТабМех.Дата, | ТабМех.Номер, | ТабМех.ПослеМехСтар, | ДХМ_ПаспортИзделияТабличнаяЧасть235.ГОСТДетали КАК ГОСТДетали, | ДХМ_ПаспортИзделияТабличнаяЧасть235.ДопДанные КАК ДопДанные, | ТабМех.ТемператураKCU КАК Т |ИЗ | Документ.ДХМ_ПаспортИзделия.ТабличнаяЧасть235 КАК ДХМ_ПаспортИзделияТабличнаяЧасть235 | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ДХМ_ПротоколИсследованияХимическийСостав.C КАК C, | ДХМ_ПротоколИсследованияХимическийСостав.Mn КАК Mn, | ДХМ_ПротоколИсследованияХимическийСостав.Si КАК Si, | ДХМ_ПротоколИсследованияХимическийСостав.S КАК S, | ДХМ_ПротоколИсследованияХимическийСостав.P КАК P, | ДХМ_ПротоколИсследованияХимическийСостав.Cr КАК Cr, | ДХМ_ПротоколИсследованияХимическийСостав.Ni КАК Ni, | ДХМ_ПротоколИсследованияХимическийСостав.Ti КАК Ti, | ДХМ_ПротоколИсследованияХимическийСостав.Mo КАК Mo, | ДХМ_ПротоколИсследованияХимическийСостав.Al КАК Al, | ДХМ_ПротоколИсследованияХимическийСостав.W КАК W, | ДХМ_ПротоколИсследованияХимическийСостав.V КАК V, | ДХМ_ПротоколИсследованияХимическийСостав.Nb КАК Nb, | ДХМ_ПротоколИсследованияХимическийСостав.Cu КАК Cu, | ДХМ_ПротоколИсследованияХимическийСостав.Ссылка.Номер КАК Номер, | ДХМ_ПротоколИсследованияХимическийСостав.НомерСтроки КАК НомерСтроки | ИЗ | Документ.ДХМ_ПротоколИсследования.ХимическийСостав КАК ДХМ_ПротоколИсследованияХимическийСостав | | СГРУППИРОВАТЬ ПО | ДХМ_ПротоколИсследованияХимическийСостав.C, | ДХМ_ПротоколИсследованияХимическийСостав.Mn, | ДХМ_ПротоколИсследованияХимическийСостав.Si, | ДХМ_ПротоколИсследованияХимическийСостав.S, | ДХМ_ПротоколИсследованияХимическийСостав.P, | ДХМ_ПротоколИсследованияХимическийСостав.Cr, | ДХМ_ПротоколИсследованияХимическийСостав.Ni, | ДХМ_ПротоколИсследованияХимическийСостав.Ti, | ДХМ_ПротоколИсследованияХимическийСостав.Mo, | ДХМ_ПротоколИсследованияХимическийСостав.Al, | ДХМ_ПротоколИсследованияХимическийСостав.W, | ДХМ_ПротоколИсследованияХимическийСостав.V, | ДХМ_ПротоколИсследованияХимическийСостав.Nb, | ДХМ_ПротоколИсследованияХимическийСостав.Ссылка.Номер, | ДХМ_ПротоколИсследованияХимическийСостав.Cu, | ДХМ_ПротоколИсследованияХимическийСостав.НомерСтроки) КАК ТабХим | ПО (ТабХим.Номер = ДХМ_ПаспортИзделияТабличнаяЧасть235.ПротоколИсследования.Номер) | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ДХМ_ПротоколИсследованияМехИспытание.ТипОбразца КАК ТипОбразца, | ДХМ_ПротоколИсследованияМехИспытание.ПределТекучести КАК ПределТекучести, | ДХМ_ПротоколИсследованияМехИспытание.ВременноеСопротивление КАК ВрСопр, | ДХМ_ПротоколИсследованияМехИспытание.ОтносительноеУдлинение КАК Удл, | ДХМ_ПротоколИсследованияМехИспытание.ОтносительноеСужение КАК Суж, | ДХМ_ПротоколИсследованияМехИспытание.Ссылка.Номер КАК Номер, | ДХМ_ПротоколИсследованияМехИспытание.Ссылка.ДокументОснование.НомерПлавки КАК НомерПлавки, | ДХМ_ПротоколИсследованияМехИспытание.Ссылка.ДокументОснование.НомерПартии КАК НомерПартии, | ДХМ_ПротоколИсследованияМехИспытание.Ссылка.ДокументОснование.ТемпературныйРежим КАК Темп, | ДХМ_ПротоколИсследованияМехИспытание.Ссылка.Дата КАК Дата, | ДХМ_ПротоколИсследованияМехИспытание.KCUПослеМехСтр КАК ПослеМехСтар, | ДХМ_ПротоколИсследованияМехИспытание.НомерСтроки КАК НомерСтроки, | ДХМ_ПротоколИсследованияМехИспытание.ТемператураKCU КАК ТемператураKCU | ИЗ | Документ.ДХМ_ПротоколИсследования.МехИспытание КАК ДХМ_ПротоколИсследованияМехИспытание | | СГРУППИРОВАТЬ ПО | ДХМ_ПротоколИсследованияМехИспытание.ТипОбразца, | ДХМ_ПротоколИсследованияМехИспытание.ПределТекучести, | ДХМ_ПротоколИсследованияМехИспытание.ОтносительноеУдлинение, | ДХМ_ПротоколИсследованияМехИспытание.ОтносительноеСужение, | ДХМ_ПротоколИсследованияМехИспытание.ВременноеСопротивление, | ДХМ_ПротоколИсследованияМехИспытание.Ссылка.Номер, | ДХМ_ПротоколИсследованияМехИспытание.Ссылка.ДокументОснование.НомерПлавки, | ДХМ_ПротоколИсследованияМехИспытание.Ссылка.ДокументОснование.НомерПартии, | ДХМ_ПротоколИсследованияМехИспытание.Ссылка.ДокументОснование.ТемпературныйРежим, | ДХМ_ПротоколИсследованияМехИспытание.Ссылка.Дата, | ДХМ_ПротоколИсследованияМехИспытание.KCUПослеМехСтр, | ДХМ_ПротоколИсследованияМехИспытание.НомерСтроки, | ДХМ_ПротоколИсследованияМехИспытание.ТемператураKCU) КАК ТабМех | ПО (ТабМех.Номер = ДХМ_ПаспортИзделияТабличнаяЧасть235.ПротоколИсследования2.Номер) |ГДЕ | ДХМ_ПаспортИзделияТабличнаяЧасть235.Ссылка.Номер = &Ссылка | |УПОРЯДОЧИТЬ ПО | Деталь |АВТОУПОРЯДОЧИВАНИЕ"; Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Номер); В док "Документ.ДХМ_ПаспортИзделия.ТабличнаяЧасть235" есть поле "ПротоколИсследования2" типа "Документ.ДХМ_ПротоколИсследование". Запрос выбирал данные из табличной части Документ.ДХМ_ПаспортИзделия.ТабличнаяЧасть235 + из того документа который указ в поле ПротоколИсследования2. однако теперь требование изминилось. Поле "ПротоколИсследования2" стало типа "ДокументСсылка" т.к оно может быть или "Документ.ДХМ_ПротоколИсследование" или "Документ.ДХМ_ВходнойСертификат". Нужно задать условие что если в поле ПротоколИсследования2 выбран док ПротоколИсследование то данные выбираются из табличной часть док ПротоколИсследование, а если выбран Документ.ДХМ_ВходнойСертификат - то соотвественно из его табличной части. Подскажите как можно такое условие задать? |
|||
1
Ёпрст
23.09.14
✎
11:25
|
(0) не надо там никакого условия, достаточно юнион сделать из двух документов по условию ПротоколИсследования2
|
|||
2
Ёпрст
23.09.14
✎
11:26
|
ну и это, нафига вы группируете табличные части документов в подзапросе, если это бессмысленно, при условии в селекте НомерСтроки ?
|
|||
3
S89K
23.09.14
✎
11:27
|
а можно пример этого "юнион"? а то без понятия что это
|
|||
4
Ёпрст
23.09.14
✎
11:28
|
Ну и это, перебирать все документы(и их табличные части) за весь период ведения базы, как-то не комильфо
|
|||
5
Ёпрст
23.09.14
✎
11:28
|
(3) два запроса + Объединить все между ними
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |