Имя: Пароль:
1C
1C 7.7
v7: Помощь с запросом SQL
,
0 Тёплый фарфор
 
04.09.18
18:10
Коллеги, помогите с запросом, пжта.
|SELECT
|    LEFT(Журнал.Date_Time_IDDOC,8)    AS    [Дата $Дата],
|    LTRIM(RTRIM(Журнал.DOCNO))            AS    [Номер $Строка]
|(CASE
|WHEN $ДокЗаявки.Реквизит1 = 1 THEN 1
|WHEN $ДокЗаявки.Реквизит2 = 1 THEN 3
|WHEN $ДокЗаявки.Реквизит3 = 1 THEN 2
|ELSE 4
|END) AS [НовоеПоле $Число]
|FROM
|    _1SJORN AS Журнал
|WHERE
|    Журнал.IDDOCDef  = $ВидДокумента.Заявка

Нужно добавить условие по "НовоеПоле". Как это лучше сделать?
1 Cool_Profi
 
04.09.18
18:12
AND
(CASE
|WHEN $ДокЗаявки.Реквизит1 = 1 THEN 1
|WHEN $ДокЗаявки.Реквизит2 = 1 THEN 3
|WHEN $ДокЗаявки.Реквизит3 = 1 THEN 2
|ELSE 4
|END) = <тут параметер>
2 Cool_Profi
 
04.09.18
18:12
Перед AND
WHERE
|    Журнал.IDDOCDef  = $ВидДокумента.Заявка
3 ADirks
 
05.09.18
09:07
Единственно верный способ - все вычисления оборачивать в подзапрос


|SELECT
|    Журнал.Дата [Дата $Дата],
|    Журнал.Номер,
|    Журнал.НовоеПоле
|FROM
|    (
|    SELECT
|        LEFT(Журнал.Date_Time_IDDOC,8) Дата,
|        LTRIM(RTRIM(Журнал.DOCNO)) Номер,
|        CASE
|            WHEN $ДокЗаявки.Реквизит1 = 1 THEN 1
|            WHEN $ДокЗаявки.Реквизит2 = 1 THEN 3
|            WHEN $ДокЗаявки.Реквизит3 = 1 THEN 2
|            ELSE 4
|        END НовоеПоле
|    FROM
|        _1SJORN AS Журнал
|    WHERE
|        Журнал.IDDOCDef  = $ВидДокумента.Заявка
|    ) Журнал
|WHERE
|    Журнал.НовоеПоле = 7
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой