Имя: Пароль:
1C
 
Выбрать Различные поля по условию в Запросе
,
0 myr4ik07
 
29.01.15
17:22
Делаю отчет в Консоли запросов

ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Склад КАК Склад,
    МАКСИМУМ(ТоварыНаСкладахОстатки.Номенклатура) КАК Номенклатура,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Осталось,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, "нет цены") КАК Цена,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, "нет цены") КАК ТипЦен,
    ЕСТЬNULL(1.00000000001 / 1.00000000001 * ТоварыНаСкладахОстатки.КоличествоОстаток * ЦеныНоменклатурыСрезПоследних.Цена, "нет ценв") КАК Сумма
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад.Подразделение В ИЕРАРХИИ (&Подразделение)) КАК ТоварыНаСкладахОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен В (&ТипЦен1, &ТипЦен)) КАК ЦеныНоменклатурыСрезПоследних
        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
ГДЕ
    ТоварыНаСкладахОстатки.КоличествоОстаток > 0

СГРУППИРОВАТЬ ПО
    ЦеныНоменклатурыСрезПоследних.Цена,
    ЦеныНоменклатурыСрезПоследних.ТипЦен,
    ТоварыНаСкладахОстатки.Склад,
    ТоварыНаСкладахОстатки.КоличествоОстаток

УПОРЯДОЧИТЬ ПО
    Склад,
    ТипЦен,
    Осталось УБЫВ

ЗакупкаГривна и ЗакупкаДоллар это Справочник.ТипЦен
которые отлично выбирает данные типа

Склад Номенклатура Остаток Цена        ТипЦен            Сумма
№1         Лук        10    1       ЗакупкаГривна         100
№1         Лук        10  0.10       ЗакупкаДоллар          1
№1         Слива      1    20        ЗакупкаДоллар         20

и т.д.

как мне вывести отчет
что бы, если в Товара "Лук" есть цены закупки Доллар и Гривна выводилась одна цена, не важно Доллар или Гривна?!
1 Ёпрст
 
29.01.15
17:24
(0) максимум
2 Ёпрст
 
29.01.15
17:24
или минимум, по вкусу
3 FIXXXL
 
29.01.15
17:26
(0) отличный отчет с учетом курса :)
4 myr4ik07
 
29.01.15
17:28
(1) где Максимум или Минимум?
5 myr4ik07
 
29.01.15
17:30
(1) у меня и так Сгруппировано все что надо и не надо
6 Один С
 
29.01.15
17:31
ВЫБОР КОГДА
спасет отца русской демократии
7 myr4ik07
 
29.01.15
17:33
(6) тоже думал об этом, приведите пример будьте добры, не могу представить как это выглнядит?!
8 myr4ik07
 
29.01.15
17:35
(6) на какое условие ВЫБОР КОГДА? На Равенство что ли?
9 Крошка Ру
 
29.01.15
17:38
(5) Тип цены убери из группировки и бери по нему максимум или минимум
10 Один С
 
29.01.15
17:40
чето я запутался кто на ком стоял...
можно я пойду?
11 myr4ik07
 
29.01.15
17:40
(9) в суммированное поле типцены не перемещается
12 Ёпрст
 
29.01.15
17:40
(4)

Выбрать

Максимум(ЦеныНоменклатурыСрезПоследних.Цена) КАК Цена,
ЦеныНоменклатурыСрезПоследних.Номенклатура
Поместить ТабличкаСЦенами
ИЗ
     РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен В (&ТипЦен1, &ТипЦен)) КАК ЦеныНоменклатурыСрезПоследних
Сгруппировать ПО ЦеныНоменклатурыСрезПоследних.Номенклатура

потом в основном запросе левое соединение с этой табличкой заместо регистра и привет
13 Крошка Ру
 
29.01.15
17:40
Ээээ...  а что-то я не понял,а ты что пытаешься сделать-то?

группировка по количеству и Максимум(Номенклатура) - это типа выбрать одну номенклатуру на каждое найденное количество?
14 myr4ik07
 
29.01.15
17:43
хух, я уже запутался, сколько советов...
15 myr4ik07
 
29.01.15
17:45
А почему если я строю запрос конструктором запроса если я в группировку хоть одно поле переношу и нажимаю Ок автоматически переносяться все поля в СГРУППИРОВАТЬ ПО
?
16 Крошка Ру
 
29.01.15
17:49
(15) А что, по-твоему, такое ГРУППИРОВКА?
(На самом деле так происходит в результате заговора разработчиков.У них не получается представить группировку не охватывающую всю таблицу, вот из-за их бедной фантазии мы и страдаем. Но ты - тссс, никому)
17 myr4ik07
 
29.01.15
17:53
(12) ну, что делаю не так


ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    ЦеныНоменклатурыСрезПоследних.ТипЦен,
    МИНИМУМ(ЦеныНоменклатурыСрезПоследних.Цена) КАК Цена
ПОМЕСТИТЬ ВТ
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен В (&ТипЦен, &ТипЦен2)) КАК ЦеныНоменклатурыСрезПоследних

СГРУППИРОВАТЬ ПО
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    ЦеныНоменклатурыСрезПоследних.ТипЦен


все ровно есть две однаковых номенклатуры с ценами ЗакупкаДоллар          ЗакупкаГривна
18 Один С
 
29.01.15
17:54
да ужж... весело.
На самом деле я бы посоветовал автору абстрагироваться на некоторое время от запроса и русскими буквами, четко, без ошибок написать на листочке что нужно получить на выходе.
Это будет уже половина решения.
19 Крошка Ру
 
29.01.15
17:55
(17)Потому что ты ГРУППИРУЕШЬ по ТипуЦен. Убери его из группировки и возьми по нему максимум.
20 myr4ik07
 
29.01.15
17:55
(18) Условие по двух значениях листочок готовые
21 myr4ik07
 
29.01.15
17:55
(19) ага ) убрал, вроде то )
22 Крошка Ру
 
29.01.15
17:56
(17)

ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    МАКСИМУМ(ЦеныНоменклатурыСрезПоследних.ТипЦен) КАК ТипЦен,
    МИНИМУМ(ЦеныНоменклатурыСрезПоследних.Цена) КАК Цена
ПОМЕСТИТЬ ВТ
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен В (&ТипЦен, &ТипЦен2)) КАК ЦеныНоменклатурыСрезПоследних

СГРУППИРОВАТЬ ПО
    ЦеныНоменклатурыСрезПоследних.Номенклатура
23 myr4ik07
 
29.01.15
17:56
(19) взял минимум потому как скорей всего меньше цена это будет Доллар, а мне как бы доллар нужен в выводе
24 myr4ik07
 
29.01.15
17:59
(22) короче когда убрал Поле с выборки ЦеныНоменклатурыСрезПоследних.ТипЦен) КАК ТипЦен то вроде удачно, нет повторов, ну как бы на глаз и на поиск элемента который точно есть две цены, а если  МАКСИМУМ(ЦеныНоменклатурыСрезПоследних.ТипЦен) КАК ТипЦен то есть два экземпляра
25 myr4ik07
 
29.01.15
18:00
(22) от капец, стоп ) это две однаковых номенклатуры )наверное правильно
26 myr4ik07
 
29.01.15
20:22
в итоге, вышло вот (может кому то будет полезно)

ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    МИНИМУМ(ЦеныНоменклатурыСрезПоследних.ТипЦен) КАК ТипЦен,
    МИНИМУМ(ЦеныНоменклатурыСрезПоследних.Цена) КАК Цена
ПОМЕСТИТЬ ВТ
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен В (&ТипЦен1, &ТипЦен2)) КАК ЦеныНоменклатурыСрезПоследних

СГРУППИРОВАТЬ ПО
    ЦеныНоменклатурыСрезПоследних.Номенклатура
;

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

УПОРЯДОЧИТЬ ПО
    Склад,
    Количество УБЫВ