对 SSRS 列集求和
Summing an SSRS column set
我有一个从数据库收集项目并生成多行的查询:
SELECT
ITEMID,
SUM(dbo.CUSTINVOICETRANS.QTY) AS 'Quanity',
SUM(LINEAMOUNTMST) AS 'Sales',
COUNT(DISTINCT dbo.CUSTINVOICEJOUR.SALESID) AS 'Total Orders'
INTO
#tempItemRevenue
FROM
dbo.CUSTINVOICEJOUR INNER JOIN
dbo.CUSTINVOICETRANS ON dbo.CUSTINVOICEJOUR.INVOICEID = dbo.CUSTINVOICETRANS.INVOICEID
WHERE
dbo.CUSTINVOICETRANS.DIMENSION2_ IN (@division)
AND
CONVERT(DATETIME, dbo.CUSTINVOICETRANS.INVOICEDATE, 101) BETWEEN @start AND @end
GROUP BY
ITEMID
SELECT
ITEMGROUPID AS 'Process',
[DESCRIPTION] AS 'Division',
ISNULL(PRICE / CASE WHEN PRICEUNIT = 0 THEN NULL ELSE PRICEUNIT END, 0) AS 'Unit Price',
SUM(LOADQTY) AS 'Load Size',
SUM(LOADQTY * ISNULL(PRICE / CASE WHEN PRICEUNIT = 0 THEN NULL ELSE PRICEUNIT END, 0)) AS 'Load Value',
SUM(Sales) as 'Sales',
SUM(Quanity) AS 'Quantity'
FROM
dbo.INVENTTABLE INNER JOIN
dbo.INVENTTABLEMODULE ON dbo.INVENTTABLE.ITEMID = dbo.INVENTTABLEMODULE.ITEMID
INNER JOIN #tempItemRevenue ON dbo.INVENTTABLE.ITEMID = #tempItemRevenue.ITEMID
INNER JOIN dbo.DIMENSIONS ON NUM = dbo.INVENTTABLE.DIMENSION2_
--INNER JOIN dbo.CUSTTABLE cu ON ACCOUNTNUM = CUSTACCOUNT
WHERE
MODULETYPE = 2
AND
ITEMGROUPID IN (@group)
AND
dbo.INVENTTABLE.DIMENSION2_ IN (@division)
and LOADQTY * ISNULL(PRICE / CASE WHEN PRICEUNIT = 0 THEN NULL ELSE PRICEUNIT END, 0) > 0
Group BY
ITEMGROUPID,[DESCRIPTION],PRICE,PRICEUNIT
DROP TABLE #tempItemRevenue
这会产生如下结果:
Process Division Unit Price Load Size Load Value Sales Quantity
Anodize Green Bay 0.132916 1050 139.5618 26 200
Anodize Green Bay 0.15375 2000 307.5 447.45 2983
Anodize Green Bay 0.156 5000 780 848 5300
Anodize Green Bay 0.1751 17040 2983.704 278.64 1548
Anodize Green Bay 0.187138516 13520 2530.112741 3147.35 16565
我将其放入 SSRS table 中,它对所有内容求和,但它对每一行求和...我需要将具有相同流程的所有内容全部加在一起。但我无法让 Report Builder 3.0 给我选择对所有行求和的选项。
本质上,我希望每个进程和每个部门只有一行(有很多组合)。不是每个订单项。
我究竟做错了什么?我似乎无法只得到总数。
因此,我可以像这样在 Tablix 字段的底部添加总计行:
单击行 header(因此整行突出显示)。在 Tablix 中第一个文本框显示 "Process" 的位置,您会看到一个括号(表示行分组。Right-click,然后向下转到添加行,然后在组外添加行。那应该在所有组之外给你一行,你可以在其中对上面的所有内容求和。
我有一个从数据库收集项目并生成多行的查询:
SELECT
ITEMID,
SUM(dbo.CUSTINVOICETRANS.QTY) AS 'Quanity',
SUM(LINEAMOUNTMST) AS 'Sales',
COUNT(DISTINCT dbo.CUSTINVOICEJOUR.SALESID) AS 'Total Orders'
INTO
#tempItemRevenue
FROM
dbo.CUSTINVOICEJOUR INNER JOIN
dbo.CUSTINVOICETRANS ON dbo.CUSTINVOICEJOUR.INVOICEID = dbo.CUSTINVOICETRANS.INVOICEID
WHERE
dbo.CUSTINVOICETRANS.DIMENSION2_ IN (@division)
AND
CONVERT(DATETIME, dbo.CUSTINVOICETRANS.INVOICEDATE, 101) BETWEEN @start AND @end
GROUP BY
ITEMID
SELECT
ITEMGROUPID AS 'Process',
[DESCRIPTION] AS 'Division',
ISNULL(PRICE / CASE WHEN PRICEUNIT = 0 THEN NULL ELSE PRICEUNIT END, 0) AS 'Unit Price',
SUM(LOADQTY) AS 'Load Size',
SUM(LOADQTY * ISNULL(PRICE / CASE WHEN PRICEUNIT = 0 THEN NULL ELSE PRICEUNIT END, 0)) AS 'Load Value',
SUM(Sales) as 'Sales',
SUM(Quanity) AS 'Quantity'
FROM
dbo.INVENTTABLE INNER JOIN
dbo.INVENTTABLEMODULE ON dbo.INVENTTABLE.ITEMID = dbo.INVENTTABLEMODULE.ITEMID
INNER JOIN #tempItemRevenue ON dbo.INVENTTABLE.ITEMID = #tempItemRevenue.ITEMID
INNER JOIN dbo.DIMENSIONS ON NUM = dbo.INVENTTABLE.DIMENSION2_
--INNER JOIN dbo.CUSTTABLE cu ON ACCOUNTNUM = CUSTACCOUNT
WHERE
MODULETYPE = 2
AND
ITEMGROUPID IN (@group)
AND
dbo.INVENTTABLE.DIMENSION2_ IN (@division)
and LOADQTY * ISNULL(PRICE / CASE WHEN PRICEUNIT = 0 THEN NULL ELSE PRICEUNIT END, 0) > 0
Group BY
ITEMGROUPID,[DESCRIPTION],PRICE,PRICEUNIT
DROP TABLE #tempItemRevenue
这会产生如下结果:
Process Division Unit Price Load Size Load Value Sales Quantity
Anodize Green Bay 0.132916 1050 139.5618 26 200
Anodize Green Bay 0.15375 2000 307.5 447.45 2983
Anodize Green Bay 0.156 5000 780 848 5300
Anodize Green Bay 0.1751 17040 2983.704 278.64 1548
Anodize Green Bay 0.187138516 13520 2530.112741 3147.35 16565
我将其放入 SSRS table 中,它对所有内容求和,但它对每一行求和...我需要将具有相同流程的所有内容全部加在一起。但我无法让 Report Builder 3.0 给我选择对所有行求和的选项。
本质上,我希望每个进程和每个部门只有一行(有很多组合)。不是每个订单项。
我究竟做错了什么?我似乎无法只得到总数。
因此,我可以像这样在 Tablix 字段的底部添加总计行:
单击行 header(因此整行突出显示)。在 Tablix 中第一个文本框显示 "Process" 的位置,您会看到一个括号(表示行分组。Right-click,然后向下转到添加行,然后在组外添加行。那应该在所有组之外给你一行,你可以在其中对上面的所有内容求和。