SELECT
strCode AS [商品编号]
, strProduct AS [商品名]
, strBrand AS [产品品牌]
, strSupplier AS [供应商]
, '+ @SQL +'
FROM(
SELECT
a.strCode
, a.strProduct
, a.strBrand
, d.strSupplier
, ISNULL(SUM(b.intNumber),0) AS [销售总数]
-- , SUM(b.intNumber) AS [销售总数]
, CONVERT(VARCHAR(20),c.dtCreate,111) AS [日期]
FROM
Setting_Product a
INNER JOIN Sale_OrderDetails b ON a.intProductID=b.intProductID
INNER JOIN Sale_Order c ON b.intOrderID=c.intOrderID
INNER JOIN Setting_Supplier d ON d.intSupplierID=a.intSupplierID
WHERE c.dtCreate <= DATEADD(DAY,1,'+ QUOTENAME(@dt2,'''') +')
AND c.dtCreate >= '+ QUOTENAME(@dt1,'''') +'
GROUP BY
a.strCode
, a.strProduct
, a.strBrand
, d.strSupplier
, CONVERT(VARCHAR(20),c.dtCreate,111)
) AS c
PIVOT (
MAX([销售总数])
FOR [日期] IN ('+ @SQL +')
) AS d
strCode AS [商品编号]
, strProduct AS [商品名]
, strBrand AS [产品品牌]
, strSupplier AS [供应商]
, '+ @SQL +'
FROM(
SELECT
a.strCode
, a.strProduct
, a.strBrand
, d.strSupplier
, ISNULL(SUM(b.intNumber),0) AS [销售总数]
-- , SUM(b.intNumber) AS [销售总数]
, CONVERT(VARCHAR(20),c.dtCreate,111) AS [日期]
FROM
Setting_Product a
INNER JOIN Sale_OrderDetails b ON a.intProductID=b.intProductID
INNER JOIN Sale_Order c ON b.intOrderID=c.intOrderID
INNER JOIN Setting_Supplier d ON d.intSupplierID=a.intSupplierID
WHERE c.dtCreate <= DATEADD(DAY,1,'+ QUOTENAME(@dt2,'''') +')
AND c.dtCreate >= '+ QUOTENAME(@dt1,'''') +'
GROUP BY
a.strCode
, a.strProduct
, a.strBrand
, d.strSupplier
, CONVERT(VARCHAR(20),c.dtCreate,111)
) AS c
PIVOT (
MAX([销售总数])
FOR [日期] IN ('+ @SQL +')
) AS d
那就是你程序的问题,数据库里你查询出来是是否还有NULL呢,如果没有就是程序问题了。如果有,看下是哪一列,这列是什么数据。