Можно ли ограничить значения представления SQL? - PullRequest
0 голосов
/ 06 мая 2019

У меня есть представление с несколькими значениями.Это представление вызывается непосредственно в раскрывающемся списке в моей ERP.Я хотел бы знать, возможно ли ограничить значения этого представления согласно другому полю в ERP?

Страница, которая открывает форму с полями, вызывает 3 процедуры: before_open, before_close, after_save

Я не могу найти никакой информации по этому вопросу.

Я уже пытался создатьa используя предложение Где ограничить значения, но это не сработало.

// Мой взгляд

CREATE VIEW Values
AS
SELECT N_values = 1 , Value = 'Working'
UNION ALL
SELECT N_values = 2 , Value = 'Pause'
UNION ALL
SELECT N_values = 3 , Value = 'Home'
UNION ALL 
SELECT N_values = 4 , Value = 'Vacations'
GO

// Чтобы ограничить значения, я сделал это, где ID как 1,5, 6

IF(field = 'Not at work') SELECT field FROM view WHERE N_values IN(3,4)

Я ожидаю, что вывод выпадающего списка будет только [N_values] 3 и 4, но я получаю весь список.

Ответы [ 2 ]

0 голосов
/ 06 мая 2019

Почему бы вам не добавить дополнительный (вычисляемый столбец) working

CREATE VIEW Values
AS
SELECT N_values = 1 , Value = 'Working'
UNION ALL
SELECT N_values = 2 , Value = 'Pause'
UNION ALL
SELECT N_values = 3 , Value = 'Home'
UNION ALL 
SELECT N_values = 4 , Value = 'Vacations'
GO


//this view add a 'calculated field' that is true if forking
CREATE VIEW values_extended AS
SELECT *, case when n_values >2 then 'not-working' else 'working' end
FROM values
GO

так что вы можете выбрать

select n_values, Value
from value_extended
where working like 'not-working'

даст вам

3, Home
4, Vacations
0 голосов
/ 06 мая 2019

Вы ищете пункт where?

SELECT field
FROM view
WHERE (@field = 'Not at work' and N_values IN (3, 4)) OR
      (@field <> 'Not at work');
...