2017-01-03 97 views
0

這是我從課堂作業任務中提出的一個問題,它給了我一些麻煩。如何加入兩個或更多沒有「公共列」的表格sql

顯示在位於Syndey的任何部門超過5名員工加入的月份。

PS:我很抱歉的上限。我的老師指示我創建這樣的表格。

表地點:

LOCATION_ID NOT NULL NUMBER(4)  
STREET_ADDRESS   VARCHAR2(40) 
POSTAL_CODE    VARCHAR2(12) 
CITY   NOT NULL VARCHAR2(30) 
STATE_PROVINCE   VARCHAR2(25) 
COUNTRY_ID    CHAR(2) 

表工作:

JOB_ID  NOT NULL VARCHAR2(10) 
JOB_TITLE NOT NULL VARCHAR2(35) 
MIN_SALARY   NUMBER(6)  
MAX_SALARY   NUMBER(6) 

JOB_HISTORY:

JOB_ID  NOT NULL VARCHAR2(10) 
JOB_TITLE NOT NULL VARCHAR2(35) 
MIN_SALARY   NUMBER(6)  
MAX_SALARY   NUMBER(6) 

表員工:

EMPLOYEE_ID NOT NULL NUMBER(6)  
FIRST_NAME    VARCHAR2(20) 
LAST_NAME  NOT NULL VARCHAR2(25) 
EMAIL   NOT NULL VARCHAR2(25) 
PHONE_NUMBER   VARCHAR2(20) 
HIRE_DATE  NOT NULL DATE   
JOB_ID   NOT NULL VARCHAR2(10) 
SALARY     NUMBER(8,2) 
COMMISSION_PCT   NUMBER(2,2) 
MANAGER_ID    NUMBER(6)  
DEPARTMENT_ID   NUMBER(4)  

表部門:

所有的
DEPARTMENT_ID NOT NULL NUMBER(4)  
DEPARTMENT_NAME NOT NULL VARCHAR2(30) 
MANAGER_ID    NUMBER(6)  
LOCATION_ID    NUMBER(4)  
+1

這不是一個家庭作業問題得到解答的地方。如果你表現出一些努力,人們可以幫助你。 –

+1

如果沒有共同的專欄,你就無法參與,那不是加入作品的方式。 –

+0

答案是0.「Syndey」不存在。 –

回答

0

首先,請不要道歉有關SQL腳本中使用蓋子。你的老師正在教你正確的指導方針。它實際上是一種推薦的方式(乾淨的代碼方式),用大寫字母編寫SQL腳本,特別是SQL關鍵字和數據類型,以提高可讀性。如果你想保持你的列名在大寫,那麼這是你的選擇。

那麼這裏是您的查詢來獲得所需的輸出。您尚未提及您當前定位的數據庫。我寫了針對Microsoft SQL Server數據庫的查詢。

SELECT HiredMonth,COUNT(HiredMonth) 
FROM 
(
SELECT DATENAME(MONTH,E.HIRE_DATE) AS HiredMonth 
FROM Employees E 
INNER JOIN Departments D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID 
INNER JOIN Locations L ON D.LOCATION_ID = L.LOCATION_ID 
WHERE CITY = 'Sydney') AS P 
Group BY P.HiredMonth 

P.S.如果您的目標是其他數據庫,那麼我的查詢中使用的幾個內置函數(如DATENAME)可能必須相應地進行更改,以使此查詢可編譯到其他數據庫中。

相關問題