SQL Server: выберите, когда запись равна 1, затем возвратите строку, иначе верните 0 запись - PullRequest
0 голосов
/ 30 мая 2018

Мне нужна небольшая помощь с запросом.

Я написал скрипт, который возвращает номер заказа и количество необходимых контейнеров (код ниже):

SELECT
    CONI.CONTNO,
    CONI.ITEMNO,
    CONI.[WEIGHT],
    CONI.QTY,
    STOK.PGROUP,
    CASE WHEN CPRO.TNTCOL = 1 THEN 1
         WHEN CPRO.TNTCOL = 0 THEN 0
         WHEN CPRO.TNTCOL IS NULL THEN 0 END AS [TNT],
    CONI.RECID,
    CPRO.RECKEY
INTO
    #SUB
FROM
    ContItems CONI
LEFT JOIN 
    ContractItemProfiles CPRO ON CONI.RECID = CPRO.RECKEY
JOIN 
    Stock STOK ON CONI.ITEMNO = STOK.ITEMNO
WHERE
    STOK.PGROUP LIKE 'FLI%'


SELECT
    #SUB.CONTNO,
    #SUB.TNT,
    SUM(#SUB.QTY) AS [Number of flight cases]
FROM
    #SUB
WHERE
    #SUB.CONTNO = '123/321581'
GROUP BY
    #SUB.CONTNO,
    #SUB.TNT

DROP TABLE #SUB

Iполучить такой результат:

Contno      TNT    Number of flight cases
------------------------------------------
123/321581   0     20.00
123/321581   1      1.00

Мне нужно условно вернуть строку с тротилом TNT = 1, если в столбце TNT нет 1, затем вернуть запись с 0

Надеюсь, это достаточно объяснено.

1 Ответ

0 голосов
/ 30 мая 2018

Этот случай можно заменить на

isnull(CPRO.TNTCOL, 0) 


select top 1 
from ( SELECT #SUB.CONTNO,
              #SUB.TNT,
              SUM(#SUB.QTY) AS [Number of flight cases]
         FROM #SUB
        WHERE #SUB.CONTNO = '123/321581'
     ) t 
order by TNT desc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...