這是我嘗試過,並不能得到它的工作顯示每個部門的編號和名稱,並在各部門採用的員工數量
SELECT d.deptno,d.dname
COUNT('e.empno') "number of employees"
FROM dept,emp
WHERE d.deptno = e.deptno
GROUP BY d.deptno,d.dname
任何的幫助深表感謝感謝
這是我嘗試過,並不能得到它的工作顯示每個部門的編號和名稱,並在各部門採用的員工數量
SELECT d.deptno,d.dname
COUNT('e.empno') "number of employees"
FROM dept,emp
WHERE d.deptno = e.deptno
GROUP BY d.deptno,d.dname
任何的幫助深表感謝感謝
好吧,你有一些語法錯誤:
PS假定T-SQL/MS SQL服務器這裏
您的第三點是* not *語法錯誤。做一個交叉連接,然後在'WHERE'子句中過濾是很好的。 –
同意,讓我編輯。但是你認爲查詢優化器會自動進行內部連接?它可能,但我會一直寫明確連接。更可讀,特別是如果你有多個連接。對? – Martao
絕對正確! –
它看起來像你對我可能。正在使用Oracle,其中cas e修復相當簡單:
SELECT d.deptno, d.dname, count(e.empno) "number of employees"
FROM dept d, emp e
WHERE d.deptno = e.deptno
GROUP BY d.deptno, d.dname
您需要明確地告訴DB什麼別名引用。該錯誤消息可能提及無效/缺少標識符'd',這意味着它不知道那是什麼。
在SQL服務器,它會像
SELECT d.deptno,d.dname,
COUNT(e.empno) as number_of_employees
FROM dept d,emp e
WHERE d.deptno = e.deptno
GROUP BY d.deptno,d.dname
the error occurs when you undefined the instance of the table used
以防萬一更加優化將是
SELECT d.deptno,d.dname, COUNT(e.empno)作爲number_of_employees FROM部門ð加入EMPê 上d.deptno = e.deptno GROUP BY d.deptno,d.dname
如果有人使用Microsoft Dynamics CRM,我在此創建了一個變體,以顯示此查詢中每個帳戶的聯繫人數量:SELECT a.AccountId,a.Name, COUNT(c.ParentCustomerId)作爲number_of_contacts FROM accountbase a,contactbase c WHERE a.accountid = c.ParentCustomerId GROUP BY a.accountid,a.Name –
怎麼做的 不行? –
計數前缺少逗號 – Laurence
您可能不需要在列名稱周圍加引號。 –