Службы аналитики SQL Server: добавление столбца для предоставления промежуточного итога группы строк - PullRequest
0 голосов
/ 24 июня 2010

Пожалуйста, найдите ниже мой текущий SQL-запрос. То, что я пытаюсь сделать, это добавить столбец в набор результатов, который для каждой строки содержит промежуточный итог группы, к которой он принадлежит. Кто-нибудь может дать мне элегантное решение для этого?

SELECT     costs.cost_des, SUM(costs_periods.actual) AS actual, SUM(costs.commitment) AS commitment, SUM(costs_periods.curr_bud) AS curr_bud, 
                      costs.exp_budget_limit, v_costs_by_group.cost_id, cost_groups.description AS groupDes, cost_groups.cost_group_id, 
                      cost_groups.parent_group_id
FROM         costs INNER JOIN
                      costs_periods ON costs.cost_id = costs_periods.cost_id INNER JOIN
                      v_costs_by_group ON costs.cost_id = v_costs_by_group.cost_id INNER JOIN
                      cost_groups ON v_costs_by_group.cost_group_id = cost_groups.cost_group_id
WHERE     (costs.year_id =
                          (SELECT     year_id
                            FROM          financial_years
                            WHERE      (year_des = @year))) AND (costs_periods.period <= @currentPeriod) AND (costs_periods.period <> 0) AND (costs_periods.period <> 13)
GROUP BY costs.cost_des, costs.exp_budget_limit, v_costs_by_group.cost_id, cost_groups.cost_group_id, cost_groups.description, 
                      cost_groups.parent_group_id
HAVING      (cost_groups.cost_group_id = @CostGroupID5) OR
                      (cost_groups.parent_group_id = @CostGroupID5)
ORDER BY groupDes, costs.cost_des

Большое спасибо

Andy

Ответы [ 2 ]

0 голосов
/ 24 июня 2010

Вам нужно поставить WITH ROLLUP сразу после GROUP BY:

GROUP BY 
    costs.cost_des, costs.exp_budget_limit, v_costs_by_group.cost_id, 
    cost_groups.cost_group_id, cost_groups.description, cost_groups.parent_group_id
    WITH ROLLUP
0 голосов
/ 24 июня 2010

1 Вы должны сделать это в средстве создания отчетов

2 Подробнее об операторе ROLLUP и CUBE в файле справки SQL Server

...