Я ищу, чтобы отображать значения NULL в виде пробелов или тире, чтобы облегчить чтение результирующего набора данных, поскольку диапазон дат может отличаться. Например, для диапазона дат 10 дней я мог получать значения NULL для 5 из 10 дней для часов человека. Я просто хочу, чтобы эти значения NULL были пустыми, если у человека нет часов на этот день.Значения NULL в динамическом сводном запросе
Я видел примеры использования ISNULL на сводных таблицах, но не динамическую сводную таблицу. Мне интересно, как указать замену NULL для моего динамического списка дат, заполненных в @PivotColumns.
В моем примере запроса ниже, я опустил, не соответствующий код, такие как соединения и другие информационные колонны и т.д.
SELECT
@PivotColumns = COALESCE(@PivotColumns + ',','') + QUOTENAME(CONVERT(varchar(20),eff_date,110))
FROM
(SELECT DISTINCT
eff_date
FROM
timept
WHERE
eff_date
BETWEEN
@StartDate AND @EndDate) AS TimePivot
ORDER BY
eff_date
SET
@TimeQuery =
'WITH Hours AS (
SELECT
,tp.person_id
,tp.hours
,tp.task_code
,tp.eff_date
,SUM(tp.hours) OVER(PARTITION BY tp.person_id, edr.name, tp.task_code, tp.comments ORDER BY tp.task_code) AS sum_hours
FROM
tables
WHERE
tp.eff_date BETWEEN ''' + @StartDate + ''' AND ''' + @EndDate + '''
)
SELECT
*
FROM
Hours
PIVOT
(SUM(hours)
FOR
eff_date
IN
('[email protected]+')) as p'
EXEC sp_executesql @TimeQuery
MySQL или SQL сервер ?? Это не одно и то же. –
Я смущен относительно того, какие значения NULL дают вам проблемы. Как насчет вашего текущего запроса не работает должным образом? – larsts
Это сервер sql. Также значения NULL не являются проблемами, я просто хотел бы, чтобы они отображались как пустые или тире, чтобы облегчить чтение для конечных пользователей. –