# SQL 答題
>Q1: 共有那些部門,曾經有過資產? 請給我一個列表
請分別用 JOIN、子查詢 寫出來,並按照 部門代號 正序呈現
Ans:
欄位: 部門代號 / 部門中文
Q2: 取得日期(GETDATE)=今年,共有幾筆資產? 請給我一個數字
請把符合的資產加總起來
Ans:
欄位: 資產總數
Q3: 請列出大於一筆的資產,有那些部門? 請給我一個列表
請把符合的資產,通通列出來,並按照 資產數量 倒序呈現
Ans:
欄位: 部門代號 / 部門中文 / 資產數量
Q4: 請列出 符合以下條件 的資產有哪些? 請給我一個列表
請分別用 IN、Exists 寫出來,並按照 部門代號 倒序呈現
條件:
HR020.DIVISION=‘BB’
HR020.EFFECT_DT=‘20221001’
Ans:
欄位: 部門代號 / 部門中文
## Q1
1.
``` SQL
SELECT HR.DPT AS '部門代號',HR.DPT_NAME AS '部門中文'
FROM HR020 AS HR
LEFT JOIN FA500 AS FA
ON FA.PUTDPT = HR.DPT
WHERE HR.DPT IN (select FA.PUTDPT from FA500)
GROUP BY HR.DPT,HR.DPT_NAME
ORDER BY HR.DPT
```
2.
``` SQL
SELECT HR.DPT AS '部門代號',HR.DPT_NAME AS '部門中文'
FROM HR020 AS HR
WHERE HR.DPT IN (select FA500.PUTDPT from FA500 where FA500.PUTDPT = HR.DPT)
ORDER BY HR.DPT
```
## Q2
``` SQL
SELECT COUNT(FANO) AS '資產總數'
FROM FA500
WHERE SUBSTRING(GETDATE, 0,5) = '2023'
```
## Q3
``` SQL
SELECT HR.DPT AS '部門代號' , HR.DPT_NAME AS '部門中文 ',count(PUTDPT) AS '資產總數'
FROM FA500 AS FA
LEFT JOIN HR020 AS HR
ON FA.PUTDPT = HR.DPT
GROUP BY HR.DPT,HR.DPT_NAME,PUTDPT HAVING count(*) > 1
```
## Q4
1.
``` SQL
select DPT,DPT_NAME from HR020
where HR020.DPT IN (select FA500.PUTDPT from FA500)
and HR020.DIVISION='BB'AND HR020.EFFECT_DT ='20221001'
```
2.
``` SQL
SELECT DPT,DPT_NAME FROM HR020
WHERE EXISTS (
SELECT * FROM FA500 WHERE FA500.PUTDPT = HR020.DPT
AND HR020.DIVISION='BB'AND HR020.EFFECT_DT ='20221001' )
```