Мне нужно с арифметическим запросом SQL - PullRequest
0 голосов
/ 17 мая 2019

У меня есть таблица, в которой у меня есть 4 столбца Имя таблицы: Topup

------------------------------------
Status | Adjustment | Kisok | Done  |
 Yes   |   232      |  Abc  |  ok   |  
 NO    |  Null      |  Adc  |  No   |
-------------------------------------

Я хочу, чтобы Статус = ДА, когда Корректировка, Кисок и Готово не равны нулю, а если Статус = Нет, то Корректировка, Кисок иDone может иметь как NULL, так и NULL NULL

Я хочу этот запрос в арифметическом SQL-запросе, например (и, или), и если не Case и если все в порядке, если вы можете мне помочь, то мне будет хорошо

Я знаю, что с логикой все в порядке, но я не совсем понимаю синтаксис

Этот запрос неправильный >>

SELECT Status1,csdoneby,kioskdoneby,adjtmentstype,
   (CASE
    WHEN csdoneby,kioskdoneby,adjtmentstype, IS NOT NULL THEN Status1='yes'
    ELSE Status='No'
END as Test)
FROM topup;

Ответы [ 3 ]

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

Это правильный синтаксис.

SELECT 
Status1,
csdoneby,
kioskdoneby,
adjtmentstype,
CASE
    WHEN csdoneby IS NOT NULL
         AND kioskdoneby  IS NOT NULL
         AND adjtmentstype  IS NOT NULL
      THEN Status1='yes'
    ELSE 'No'
END as Status
FROM topup
0 голосов
/ 17 мая 2019

Попробуйте как это

SELECT Status1, csdoneby, kioskdoneby, adjtmentstype,
       CASE WHEN csdoneby IS NOT NULL AND kioskdoneby IS NOT NULL AND adjtmentstype IS NOT 
       NULL THEN 'yes'
       ELSE 'No'
       END AS Test
FROM topup;
0 голосов
/ 17 мая 2019

Вы должны назначить условие для каждого столбца

SELECT Status1, csdoneby,kioskdoneby, adjtmentstype,
   CASE
    WHEN csdoneby IS NOT NULL 
        AND kioskdoneby IS NOT NULL 
        AND adjtmentstype IS NOT NULL THEN 'yes'
    ELSE 'No'
END as Test
FROM topup;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...