2017-06-10 57 views
-1

我對一些基本的SQL問題感興趣,並且遇到了這個問題,它給了我適合。我很確定我已經徹底改變了它。協助查詢。 SQL

問題 - 顯示多年來僱用的男性和女性員工之間的差異趨勢(每年顯示差異)。 HumanResources.employees表爲此語句。

HumanResources.employee表是一個簡單的表。表中的相關列是Hire date,Gender和BusinessEntityID(PK)。

到目前爲止,我所得到的結果是兩套:一套針對男性,一套針對女性,按僱用年份分組。我想知道如何加入這兩套,以獲得不同。下面是我一直拼命縫合在一起的兩套。在此先感謝您的幫助:)

SELECT datepart(year, HireDate), COUNT(BusinessEntityID) 
    FROM HumanResources.Employee 
    WHERE Gender LIKE 'f' 
    GROUP BY datepart(year, HireDate); 

    SELECT datepart(year, HireDate), COUNT(BusinessEntityID) 
    FROM HumanResources.Employee 
    WHERE Gender LIKE 'm' 
    GROUP BY datepart(year, HireDate); 
+0

如何使用'join'?一些信息可以在這裏找到(https://www.w3schools.com/sql/sql_join.asp) – JiFus

+0

我嘗試使用一個連接,我認爲我的問題與ON ...我如何鏈接兩個結果集所以每年一次,左邊(男性邊)計數僱用,右邊(女性邊)計數僱用。我還是新手,但我會閱讀你的鏈接。謝謝:) – Myk1l

+0

BusinessEntityID是表 – Myk1l

回答

0
SELECT datepart(year, HireDate), COUNT(case when gender = 'f' then 1 end) as female_count,COUNT(case when gender = 'm' then 1 end) as male_count 
FROM HumanResources.Employee 
GROUP BY datepart(year, HireDate); 

您可以選擇caluse在使用的情況下讓你的結果。

+0

@ Myk1l您是否嘗試過以上查詢? –

+0

我做到了。兩列在每一行都返回相同的值。 – Myk1l

+0

@ Myk1l我已更新查詢。嘗試這個。 –