我正在使用SQL Server 2005.SQL - 如何简化这个简单的查询?
我该如何重构此查询?
SELECT Total, Installs, Service, tot.ls_chg_dte_ojb
FROM (SELECT COUNT(*) [Total], ls_chg_dte_ojb
FROM [COMPL_INST_SVC]
GROUP BY ls_chg_dte_ojb) tot
JOIN (SELECT COUNT(*) [Service], ls_chg_dte_ojb
FROM [COMPL_INST_SVC]
WHERE job_class_ojb = 'S'
GROUP BY ls_chg_dte_ojb) svc on svc.ls_chg_dte_ojb = tot.ls_chg_dte_ojb
JOIN (SELECT COUNT(*) [Installs], ls_chg_dte_ojb
FROM [COMPL_INST_SVC]
WHERE job_class_ojb in ('C', 'R')
GROUP BY ls_chg_dte_ojb) ins on ins.ls_chg_dte_ojb = tot.ls_chg_dte_ojb
是,即使正确吗?为什么总数只包含job_class_obj ='S'的值? – 2012-02-14 00:17:05
第一个内部选择('总')和第二个('服务')之间的区别是什么? – deutschZuid 2012-02-14 00:17:30
正如我在下面的评论中所提到的,您不应该使用单引号来分隔别名 - 此语法已被弃用。使用[方括号],“双引号”或不使用分隔符。 – 2012-02-14 01:46:54