powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / firebird case where
6 сообщений из 6, страница 1 из 1
firebird case where
    #40018715
tarakan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, помогите построить запрос.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT
  X.*
 ,CASE
    WHEN UPPER(S.DESIG) = UPPER('Ticket') THEN (SELECT T.DESIG FROM EG_Z_SOURCE_TICKET T WHERE T.ID = X.TICKETID)
    ELSE S.DESIG
  END DOCNAIM
FROM
  EG_XML X
LEFT OUTER JOIN EG_Z_SOURCE_DOCUMENT S ON (S.ID = X.SOURCEID)
WHERE
  UPPER(DOCNAIM) = UPPER(:DOCNAIM) AND
  UPPER(INOUT) = UPPER('IN') AND
  DOCID = 4


Ругается на поле DOCNAIM. Как подать параметром, полученным в CASE?
...
Рейтинг: 0 / 0
firebird case where
    #40018730
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tarakan,

Целиком весь CASE копируй. Или оборачивай вложенным и снаружи уже условие накладай.

INOUT и DOCID это с каких таблиц?
...
Рейтинг: 0 / 0
firebird case where
    #40018735
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tarakan,

-продублировать CASE в секции WHERE
-select... from select
-попытаться перенести EG_Z_SOURCE_TICKET в ...JOIN и избавиться от CASE
...
Рейтинг: 0 / 0
firebird case where
    #40018739
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m
-попытаться перенести EG_Z_SOURCE_TICKET в ...JOIN и избавиться от CASE
Лучше не пытаться, а просто перенести. ISNULL + LEFT JOIN там легко кладутся.
...
Рейтинг: 0 / 0
firebird case where
    #40018741
tarakan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WildSery
tarakan,
INOUT и DOCID это с каких таблиц?

Простите, тут уже по разному извращался и убрал принадлежность к таблицам
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT
  X.*
 ,CASE
    WHEN UPPER(S.DESIG) = UPPER('Ticket') THEN (SELECT T.DESIG FROM EG_Z_SOURCE_TICKET T WHERE T.ID = X.TICKETID)
    ELSE S.DESIG
  END DESIG
FROM
  EG_XML X
LEFT OUTER JOIN EG_Z_SOURCE_DOCUMENT S ON (S.ID = X.SOURCEID)
WHERE
  UPPER(DESIG) = UPPER(:DESIG) AND
  UPPER(S.INOUT) = UPPER('IN') AND
  S.DOCID = 4
...
Рейтинг: 0 / 0
firebird case where
    #40018759
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / firebird case where
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]