我想按两个范围对下表进行分组。为此,我旋转了表,但它向我显示了一些NULL字段。我如何对表进行分组,以便仅向我显示非null值?
这是SQL查询:
SELECT RangoCuotas, [0 -21 ],[21 -42 ],[42 -79 ],[79 -158 ],[158 -9999]
FROM(
SELECT IdTasaSeguro, Valor, CONVERT(CHAR(4),MontoMinimo)+'-'+CONVERT(CHAR(4),MontoMaximo) AS RangoMonto, CONVERT(CHAR(4),CASE WHEN CuotaMin = 0 THEN 1 ELSE CuotaMin END)+'-'+CONVERT(CHAR(4),CuotaMax) AS RangoCuotas
FROM [BEFE_SistemaGestionMDP].[dbo].[TasaSeguro]
WHERE IdTipoSeguro = 1
) AS SourceTable
PIVOT
(
SUM(Valor) FOR RangoMonto IN ([0 -21 ],[21 -42 ],[42 -79 ],[79 -158 ],[158 -9999])
) AS PivotTable1
GROUP BY RangoCuotas,[0 -21 ],[21 -42 ],[42 -79 ],[79 -158 ],[158 -9999]
如果您要使用SELECT *
主SELECT
语句,那么您将看到原因。
解决方案:从(...) SourceTable
派生表中删除不必要的列(例如IdTasaSeguro
)
FROM(
SELECT
Valor,
CONVERT(CHAR(4),MontoMinimo)+'-'+CONVERT(CHAR(4),MontoMaximo) AS RangoMonto,
CONVERT(CHAR(4),CASE WHEN CuotaMin = 0 THEN 1 ELSE CuotaMin END)+'-'+CONVERT(CHAR(4),CuotaMax) AS RangoCuotas
FROM [BEFE_SistemaGestionMDP].[dbo].[TasaSeguro]
WHERE IdTipoSeguro = 1
) AS SourceTable
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句