|
v7: Прямой запрос | ☑ | ||
---|---|---|---|---|
0
Dolly_EV
08.10.12
✎
13:31
|
Есть вот такой запрос
ТекстЗапросаОбороты = " |ВЫБРАТЬ | $СпрАлк.ВидПродукции КАК [ВидАП $Справочник.алкВидыПродукции], | РегАлкОО.Номенклатура КАК [Номенклатура $Справочник.Номенклатура], | РегАлкОО.ТекущийДокумент КАК [ТекДок $Документ], | РегАлкОО.ВидДокумента КАК [ТекДок_вид $ВидДокумента], | СУММА(РегАлкОО.КоличествоПриход) КАК КолПрих, | СУММА(РегАлкОО.КоличествоРасход) КАК КолРасх |ИЗ | $РегистрОбороты.ДвиженияАлкоголя(:лНачДата,:лКонДата~,ДОКУМЕНТ, | (Фирма=:лФирма И 1=1 И 4=4), | (Номенклатура), | (Количество)) КАК РегАлкОО |ВНУТРЕННЕЕ СОЕДИНЕНИЕ | Справочник.АлкНоменклатура КАК СпрАлк $nolock |ПО | РегАлкОО.Номенклатура=$СпрАлк.Товар |ГДЕ | (2=2) |СГРУППИРОВАТЬ | $СпрАлк.ВидПродукции,РегАлкОО.Номенклатура,РегАлкОО.ТекущийДокумент,РегАлкОО.ВидДокумента |УПОРЯДОЧИТЬ | $СпрАлк.ВидПродукции,РегАлкОО.Номенклатура,РегАлкОО.ТекущийДокумент"; Как правильно к нему приджойнить вот это? | $РегАлк.КодОперации КАК [КодОпер $Перечисление.КодыОпераций], | $РегАлк.ЛицензияНаша КАК [ЛицНаша $Справочник.алкСобственныеЛицензии], | $РегАлк.Лицензия КАК [ЛицКонтр $Справочник.Лицензии] |ЛЕВОЕ СОЕДИНЕНИЕ | Регистр.ДвиженияАлкоголя КАК РегАлк $nolock |ПО | РегАлкОО.ТекущийДокумент=$РегАлк.ТекущийДокумент До СГРУППИРОВАТЬ оно было вместе... |
|||
1
Mikeware
08.10.12
✎
13:34
|
Оберни в еще один запрос.
ну и упорячивание - в конец итогового запроса... |
|||
2
Dolly_EV
08.10.12
✎
13:40
|
(1) "Оберни в еще один запрос. " - вот здесь и не выходит каменный цветок (-: Можно на этом примере наглядно?
|
|||
3
Mikeware
08.10.12
✎
13:49
|
ВЫБРАТЬ
... ИЗ (Выбрать ... )блабла левое соединение.... =блабла.ТекущийДокумент упорядочить по ... |
|||
4
Dolly_EV
08.10.12
✎
13:59
|
|ИЗ
|(ВЫБРАТЬ | $РегАлк.КодОперации КАК [КодОпер $Перечисление.КодыОпераций], | $РегАлк.ЛицензияНаша КАК [ЛицНаша $Справочник.алкСобственныеЛицензии], | $РегАлк.Лицензия КАК [ЛицКонтр $Справочник.Лицензии] | ИЗ | Регистр.ДвиженияАлкоголя) КАК РегАлк $nolock |ЛЕВОЕ СОЕДИНЕНИЕ | $РегистрОбороты.ДвиженияАлкоголя(:лНачДата,:лКонДата~,ДОКУМЕНТ, | (Фирма=:лФирма И 1=1 И 4=4), | (Номенклатура), | (Количество)) КАК РегАлкОО | |ПО | РегАлкОО.ТекущийДокумент=$РегАлк.ТекущийДокумент Ругается: State 42000, native 4104, message [Microsoft][ODBC SQL Server Driver][SQL Server]The multi-part identifier "РегАлк.SP48469" could not be bound. |
|||
5
Mikeware
08.10.12
✎
14:18
|
(4) ну и посмотри препроцессированный текст
|
|||
6
Dolly_EV
08.10.12
✎
14:25
|
(5) там много букв, не осиливаю :(-
|
|||
7
Ёпрст
08.10.12
✎
14:49
|
(0) дык
$РегАлк.КодОперации,$РегАлк.ЛицензияНаша,$РегАлк.Лицензия воткни в сгруппировать, или в селекте возьми максимум, если не хочешь группировать по ним |
|||
8
Dolly_EV
08.10.12
✎
14:50
|
(7) это реквизиты регистра, не надо мне по ним группировку
|
|||
9
Ёпрст
08.10.12
✎
14:53
|
(8) тогда так:
селект max($РегАлк.КодОперации) КАК [КодОпер $Перечисление.КодыОпераций], |
|||
10
Dolly_EV
08.10.12
✎
14:54
|
(9) и дальше - не вложенный запрос, а просто ЛЕВОЕ СОЕДИНЕНИЕ?
|
|||
11
Ёпрст
08.10.12
✎
14:56
|
да
|
|||
12
Ёпрст
08.10.12
✎
14:56
|
всё тоже самое, как и было до сгруппировать.. просто при сгруппировать, ты поля в максимум задвигаешь..
|
|||
13
Ёпрст
08.10.12
✎
14:56
|
по которым не хочешь делать группировку.
|
|||
14
Ёпрст
08.10.12
✎
14:57
|
или, делаешь вложенный запрос с группировать и к нему уже левое соединение ..
|
|||
15
Dolly_EV
08.10.12
✎
14:59
|
Вариант с max ругается: Incorrect syntax near 'MAX'.
|
|||
16
Dolly_EV
08.10.12
✎
15:02
|
Б..ь! запятую забыл.. Все, взлетел ковер-самолет!)) Ёпрст! в который раз ты меня выручаешь! СПАСИБО!
Вот так взлетело: ТекстЗапросаОбороты = " |ВЫБРАТЬ | $СпрАлк.ВидПродукции КАК [ВидАП $Справочник.алкВидыПродукции], | РегАлкОО.Номенклатура КАК [Номенклатура $Справочник.Номенклатура], | РегАлкОО.ТекущийДокумент КАК [ТекДок $Документ], | РегАлкОО.ВидДокумента КАК [ТекДок_вид $ВидДокумента], | СУММА(РегАлкОО.КоличествоПриход) КАК КолПрих, | СУММА(РегАлкОО.КоличествоРасход) КАК КолРасх, | МАКСИМУМ($РегАлк.КодОперации) КАК [КодОпер $Перечисление.КодыОпераций], | МАКСИМУМ($РегАлк.ЛицензияНаша) КАК [ЛицНаша $Справочник.алкСобственныеЛицензии], | МАКСИМУМ($РегАлк.Лицензия) КАК [ЛицКонтр $Справочник.Лицензии] | ИЗ | $РегистрОбороты.ДвиженияАлкоголя(:лНачДата,:лКонДата~,ДОКУМЕНТ, | (Фирма=:лФирма И 1=1 И 4=4), | (Номенклатура), | (Количество)) КАК РегАлкОО |ЛЕВОЕ СОЕДИНЕНИЕ | Регистр.ДвиженияАлкоголя КАК РегАлк $nolock |ПО | РегАлкОО.ТекущийДокумент=$РегАлк.ТекущийДокумент |ВНУТРЕННЕЕ СОЕДИНЕНИЕ | Справочник.АлкНоменклатура КАК СпрАлк $nolock |ПО | РегАлкОО.Номенклатура=$СпрАлк.Товар |ГДЕ | (2=2) |СГРУППИРОВАТЬ | $СпрАлк.ВидПродукции,РегАлкОО.Номенклатура,РегАлкОО.ТекущийДокумент,РегАлкОО.ВидДокумента |УПОРЯДОЧИТЬ | $СпрАлк.ВидПродукции,РегАлкОО.Номенклатура,РегАлкОО.ТекущийДокумент"; Но как через вложенный запрос - так и не понял ( |
|||
17
Ёпрст
08.10.12
✎
15:07
|
типа того
выбрать таб.Номенклатурка [....] ........ РегАлк.Код из ( //тут вложенный запросец с группировать: выбрать номенклатурка ....... из $РегистрОбороты.ДвиженияАлкоголя внутреннее соединение ... сгруппировать по ..... ) как Таб левое соединение Регистр.ДвиженияАлкоголя КАК РегАлк По РегАлк.Номенклатура = Таб.Номенклатурка |
|||
18
Ёпрст
08.10.12
✎
15:07
|
только типизацию убери из вложенного запроса
|
|||
19
Dolly_EV
08.10.12
✎
15:12
|
(17) ааа, эвон как.. а я пихал в группируемый, ясно. Но в-принципе, если агрегатная МАКСИМУМ позволяет обойти ограничение на присутствие в СГРУППИРОВАТЬ всех полей, то и так нормально
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |