我正在使用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