Сценарий состоит в том, что у меня есть два столбца: один - Количество , а другой - Тип . Теперь я пытаюсь проверить, является ли тип "rec" , тогда он берет все значения из количества и добавляет их, и если тип равен "проблема" , тогда он получит только те поля, тип которых принимает, и добавит их все на основе ИДЕНТИФИКАЦИИ ЭЛЕМЕНТА . Написанный мной SQL-запрос находится здесь:

 SELECT f.`Itemm_ID`,ABS(SUM(f.`Quantity`)) AS recieving, TYPE ,
(CASE 
WHEN f.`Type` = 'issue'
THEN ABS(SUM(f.`Quantity`))
END)
FROM stock_journal AS f
WHERE f.`Itemm_ID`='1'

Причина - это ваш с использованием Settimout и для цикла, пока ваша таймаута накапливается под названием Loop, называемая 6 раз и в i всегда 6 печати, вам нужно поставить свой цикл внутри Settimeout, чтобы оно позвонит каждую секунду

0
smartF 9 Фев 2021 в 08:08

2 ответа

Лучший ответ

Кажется, что тебе нужно

SELECT f.`Itemm_ID`,
       ABS(SUM(f.`Quantity`)) AS recieving, 
       TYPE,
       ABS(SUM(CASE WHEN f.`Type` = 'issue'
                    THEN f.`Quantity`
                    ELSE 0
                    END))
FROM stock_journal AS f
WHERE f.`Itemm_ID`='1'

PS. Делает {{x0}} может быть отрицательным? Если нет, то {{x1}} превышает. Если он может затем {{x2}} должен обернуть внутреннее значение {{x3}}, а не все {{x4

PPS. TYPE в выводе формально неверен (противоречит ONLY_FULL_GROUP_BY), я бы рекомендовал заключить его в ANY_VALUE().


Я не получил вашу рекомендацию о обертывании типа со значением. Можете ли вы уточнить больше.

Я имею в виду, что (может быть, я не уверен) тебе нужно

SELECT f.`Itemm_ID`,
       SUM(ABS(f.`Quantity`)) AS recieving, 
       TYPE,
       SUM(CASE WHEN f.`Type` = 'issue'
                THEN ABS(f.`Quantity`)
                ELSE 0
                END)
FROM stock_journal AS f
WHERE f.`Itemm_ID`='1'
1
Akina 9 Фев 2021 в 05:38

Вы проверили синтаксис для CASE? Я думаю, вам не хватает части ELSE в запросе

Например:-

SELECT OrderID, Quantity,
CASE
    WHEN Quantity > 30 THEN "The quantity is greater than 30"
    WHEN Quantity = 30 THEN "The quantity is 30"
    ELSE "The quantity is under 30"
END
FROM OrderDetails;

Проверьте синтаксис здесь

0
ClouDarK 9 Фев 2021 в 05:12
66113317