English 中文(简体)
页: 1 按组别分列的无组组组群的合计数
原标题:SQL Aggregrates without a GROUP BY
  • 时间:2009-09-10 16:10:59
  •  标签:

我试图确定是否有办法实现这一目的。 我要问:

SELECT TASK.*, PROJCOST.act_cost, PROJCOST.target_cost
FROM task
LEFT OUTER JOIN projcost ON task.task_id = projcost.task_id

我刚刚发现PROJCOST。 目标——成本和行为——成本不是1到1,需要总结。 我理解如何按部、组别和组别来使用,但我试图找到一种合法的方式来说明组中图瓦卢地理统计局表格中的每一个领域(面积接近100个,而且我需要各栏)。

我也理解,我可以把这个问题提升到法典一级,而只能选择任务清单,然后又做另一个询问来获取费用数据。 我希望避免这种情况。

而且,我也不能把这一储存起来,因为那是我的数据库。

任何想法?

谢谢。

最佳回答
SELECT TASK.*,
  (select sum (act_cost) from projcost where task_id = task.task_id) as act_cost,
  (select sum (target_cost) from projcost where task_id = task.task_id) as target_cost
FROM task
问题回答
SELECT TASK.*,
IsNull(allprojcosts.total_act_cost, 0) AS total_act_cost,
IsNull(allprojcosts.total_target_cost, 0) AS total_target_cost
FROM task
LEFT OUTER JOIN (SELECT task_id, Sum(act_cost) AS total_act_cost, Sum(target_cost) AS total_target_cost
    FROM projcost) allprojcosts ON task.task_id = allprojcosts.task_id

使用次选择。

SELECT TASK.*, sums.* 
FROM 
  task left outer join 
  (
  select task.task_id, sum(PROJCOST.act_cost), sum(PROJCOST.target_cost)
  FROM 
       task LEFT OUTER JOIN 
       projcost ON task.task_id = projcost.task_id
  ) sums ON task.task_id = sums.task_id

为任何寻求这种服务的人谋利益,温饱功能是通往小红会、COUNT等的手法,无须由小组处理,否则会发生以下错误:

"... is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause."

()

SELECT
    Col1,
    Col2,
    SUM(Col3) OVER () AS SumCol3,
    COUNT(Col1) OVER () AS NumRows
FROM Table1




相关问题
热门标签