Различные результаты запроса и хранимой процедуры в T-SQL - PullRequest
0 голосов
/ 11 июня 2018

Добрый день!

Я пытаюсь провести небольшой анализ нулевого отношения для некоторых таблиц для нашего клиента, и я хотел создать хранимую процедуру, чтобы упростить ее автоматизацию.

Проблема, с которой я сталкиваюсь, заключается в том, что при использовании самого запроса он дает правильный результат, но при использовании хранимой процедуры результат отличается.

Запрос

with cte as 
(SELECT sum(case when [EstateBOA] is NULL then 1 else 0 end) as "Null Values",
        sum(case when [EstateBOA] is not NULL then 1 else 0 end) as "Not-Null Values" 
        FROM [FASTDW].[PROP].[FactBuilding]
)

SELECT '[EstateBOA]' as ColumnName,*,CAST("Null Values" AS FLOAT) /
CAST(("Null Values" + "Not-Null Values") AS FLOAT) as "Null ratio"
FROM cte

Хранимая процедура

USE [AUDIT] 
GO
/****** Object:  StoredProcedure [dbo].[GetNullStatsFromColumnInBuilding]    
Script Date: 2018-06-11 11:22:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetNullStatsFromColumnInBuilding]
     @Columnname nvarchar(50)
AS
;with cte as 
(SELECT sum(case when @Columnname is NULL then 1 else 0 end) as "NullValues",
        sum(case when @Columnname is not NULL then 1 else 0 end) as "Not-Null Values" 
    FROM [FASTDW].[PROP].[FactBuilding]
)
SELECT @Columnname as ColumnName,*,  CAST("Null Values" AS FLOAT) / 
CAST(("Null Values" + "Not-Null Values") AS FLOAT) as "Null ratio"
FROM cte

Результат запроса

Query result

Результат хранимой процедуры Procedure Result

Есть идеи, почему это так?Это из-за «с X как» внутри хранимой процедуры?

Спасибо за ваше время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...