部門表 table1(部門、姓名、職務、薪水),查詢各個開發部的程式員,和各個維護部的維護工程師薪水在1000元以上的超過10個人的部門的總個數。
uj5u.com熱心網友回復:
SELECT COUNT(姓名) AS 開發部的程式員個數,部門表.部門,職務 FROM 部門表
LEFT JOIN (SELECT 部門,COUNT(姓名) AS 人數 FROM 部門表 GROUP BY 部門) AS 各部門人數 ON 各部門人數.部門=部門表.部門
WHERE 薪水>1000 AND 各部門人數.人數>10 AND 部門表.部門='開發部' AND 職務='程式員'
GROUP BY 部門表.部門,職務
SELECT COUNT(姓名) AS 維護部的維護工程師個數,部門表.部門,職務 FROM 部門表
LEFT JOIN (SELECT 部門,COUNT(姓名) AS 人數 FROM 部門表 GROUP BY 部門) AS 各部門人數 ON 各部門人數.部門=部門表.部門
WHERE 薪水>1000 AND 各部門人數.人數>10 AND 部門表.部門='維護部' AND 職務='維護工程師'
GROUP BY 部門表.部門,職務
uj5u.com熱心網友回復:
CREATE TABLE department (deptname nvarchar(16), empname varchar(8), occu varchar(8), salary numeric(12,2))
SELECT deptname, cnt = COUNT(*)
FROM department
WHERE salary > 1000
AND (deptname LIKE '%開發部%' OR deptname LIKE '%維護部%')
GROUP BY deptname HAVING COUNT(*) > 10
uj5u.com熱心網友回復:
這種問提問的很混亂,基本上就是叫人猜謎。uj5u.com熱心網友回復:
這是兩次查詢嗎?uj5u.com熱心網友回復:
我現在都有點暈,到底要不要在加職務是程式員和維護工程師?uj5u.com熱心網友回復:
可以改用一條查詢的。SELECT DISTINCT 開發部的程式員個數.人數,維護部的維護工程師個數.人數,部門表.部門,部門表.職務 FROM 部門表
LEFT JOIN (SELECT 部門,COUNT(姓名) AS 人數 FROM 部門表 GROUP BY 部門) AS 各部門人數 ON 各部門人數.部門=部門表.部門
LEFT JOIN (SELECT 部門,職務,COUNT(姓名) AS 人數 FROM 部門表 WHERE 部門='開發部' AND 職務='程式員' GROUP BY 部門,職務) AS 開發部的程式員個數
ON 開發部的程式員個數.部門=部門表.部門 AND 開發部的程式員個數.職務=部門表.職務
LEFT JOIN (SELECT 部門,職務,COUNT(姓名) AS 人數 FROM 部門表 WHERE 部門='維護部' AND 職務='維護工程師' GROUP BY 部門,職務) AS 維護部的維護工程師個數
ON 維護部的維護工程師個數.部門=部門表.部門 AND 維護部的維護工程師個數.職務=部門表.職務
WHERE (薪水>1000 AND 各部門人數.人數>10)
AND ((部門表.部門='開發部' AND 部門表.職務='程式員') OR (部門表.部門='維護部' AND 部門表.職務='維護工程師'))
uj5u.com熱心網友回復:
你這是要建表,還是做查詢,提問的有點模糊,回答的也不對癥。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/22589.html
標籤:數據庫相關
上一篇:MySQL8資料庫登錄
下一篇:求助,BDE連接資料庫提示這個
