Если таблица возвращает 0 строк, выберите другой запрос - PullRequest
0 голосов
/ 01 апреля 2019

Поскольку мой запрос иногда возвращает 0 строк, тогда мне нужно выбрать другой оператор, если он возвращает 0 строк.

select MR.NAME as NAMES,Isnull(cast(sum(MTTR/Month(getdate())) as decimal(18,2)),0) as YTDCURRENTYEAR from #Meantimeresult as MR 
 where YEAR(CONVERT(DATE, '01-' + Month)) = YEAR(GETDATE()) AND MONTH(CONVERT(DATE, '01-' + Month)) <= MONTH(GETDATE()) 
    group by MR.NAMES

2-й оператор равен

Select NAME='' ,YTDCURRENTYEAR=0

Ответы [ 2 ]

2 голосов
/ 01 апреля 2019
IF NOT EXISTS (YOUR FIRST QUERY)
   BEGIN
      YOUR SECOND QUERY
   END
1 голос
/ 01 апреля 2019

Вы можете заключить свой первый запрос в общее табличное выражение и использовать union all:

WITH CTE AS
(
    SELECT MR.NAME as NAMES, Isnull(cast(sum(MTTR/Month(getdate())) as decimal(18,2)),0) as YTDCURRENTYEAR 
    FROM #Meantimeresult as MR 
    WHERE YEAR(CONVERT(DATE, '01-' + Month)) = YEAR(GETDATE()) 
    AND MONTH(CONVERT(DATE, '01-' + Month)) <= MONTH(GETDATE()) 
    GROUP BY MR.NAMES
)

SELECT Names, YTDCURRENTYEAR
FROM CTE
UNION ALL
SELECT NAME='' ,YTDCURRENTYEAR=0
WHERE NOT EXISTS(
    SELECT 1 
    FROM CTE
)
...