Имя: Пароль:
1C
1С v8
Запрос не правильно работает
, ,
0 SH_tan
 
29.05.14
17:12
есть запрос в котором С помощью ОБЪЕДИНИТЬ ВСЕ объединяю цены (их 2типа Закуп и Оптовая) и остатки по товару
если поставить туда условие например цена больше 0 то пропадают другие значения в других колонках, не знаю как поправить в Запросе
1 SH_tan
 
29.05.14
17:13
если интересно то запрос тут
ВЫБРАТЬ
    ЕСТЬNULL(ЦеныКомпанииСрезПоследних.Номенклатура, 0) КАК Товар,
    ЕСТЬNULL(ЦеныКомпанииСрезПоследних.Цена, 0) КАК ЦенаЗак,
    0 КАК ЦенаОпт,
    0 КАК Остаток
ПОМЕСТИТЬ ЦеныКомпании
ИЗ
    РегистрСведений.ЦеныКомпании.СрезПоследних КАК ЦеныКомпанииСрезПоследних
ГДЕ
    ЦеныКомпанииСрезПоследних.ТипЦен = &Оптовая

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ЕСТЬNULL(ЦеныКомпанииСрезПоследних.Номенклатура, 0),
    0,
    ЕСТЬNULL(ЦеныКомпанииСрезПоследних.Цена, 0),
    0
ИЗ
    РегистрСведений.ЦеныКомпании.СрезПоследних КАК ЦеныКомпанииСрезПоследних
ГДЕ
    ЦеныКомпанииСрезПоследних.ТипЦен = &Закупочная

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ЕСТЬNULL(ОстаткиТоваровОстатки.Товар, 0),
    0,
    0,
    ЕСТЬNULL(ОстаткиТоваровОстатки.ОстатокТовараОстаток, 0)
ИЗ
    РегистрНакопления.ОстаткиТоваров.Остатки КАК ОстаткиТоваровОстатки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЦеныКомпании.Товар,
    СУММА(ЦеныКомпании.ЦенаЗак) КАК ЦенаЗак,
    СУММА(ЦеныКомпании.ЦенаОпт) КАК ЦенаОпт,
    СУММА(ЦеныКомпании.Остаток) КАК Остаток
ИЗ
    ЦеныКомпании КАК ЦеныКомпании

СГРУППИРОВАТЬ ПО
    ЦеныКомпании.Товар
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ЦеныКомпании
2 Злобный монстр
 
29.05.14
17:13
(0) Сочувствую.
3 Злобный монстр
 
29.05.14
17:13
(1) Вот так сразу бы.
4 Злобный монстр
 
29.05.14
17:16
(1) Условие куда пихаешь?
5 Александр Б
 
29.05.14
17:17
Нужно сперва сгруппировать, а потом условие накладывать.
6 Fragster
 
гуру
29.05.14
17:18
А зачем там ЕстьNULL?
7 Александр Б
 
29.05.14
17:18
Либо добавить конструкцию ИМЕЩЮЩИЕ
8 SH_tan
 
29.05.14
17:18
(4) после ЦеныКомпании КАК ЦеныКомпании
если поставить условие ГДЕ ...<> 0 другие пустые
9 Fragster
 
гуру
29.05.14
17:18
а к запросу (1) надо не ГДЕ, а ИМЕЮЩИЕ, ну, или обернуть группировку во вложенный запрос
10 SH_tan
 
29.05.14
17:18
(6) на всякий случай,баловался
11 shuhard
 
29.05.14
17:19
(1) мой запрос был совсем другим
12 Fragster
 
гуру
29.05.14
17:20
(11) кстати по скорости этот вариант весьма неплох. ну разве что надо получить только по остаткам - тогда не совсем правильно
13 Злобный монстр
 
29.05.14
17:21
(7)  +1
(11) +1
14 Александр Б
 
29.05.14
17:23
(12) а он наверное это и делает, пытается оставить только те строки, которые остаток > 0
15 Злобный монстр
 
29.05.14
17:24
(14) Вроде пишет "условие например цена больше 0"
16 SH_tan
 
29.05.14
17:25
(14) угу
17 Злобный монстр
 
29.05.14
17:28
(14) Я бы тогда получил остатки сначала, а цены потом присоединил.
18 Злобный монстр
 
29.05.14
17:29
(17) + Цены по колонкам можно через ВЫБОР поделить сразу.
19 SH_tan
 
29.05.14
17:29
и все заработало СПАСИБО ВСЕМ!!!
20 SH_tan
 
29.05.14
17:31
(18)оставил все как есть только Имеющие добавил
21 Злобный монстр
 
29.05.14
17:34
(20) Угу, я просто к тому что по-другому бы делал.