2

私は2つのテーブルを持っています。たとえば、最初のテーブルは親テーブル、つまりdeptno(主キー)とを含むdepartmentでありdeptname、もう1つのテーブルは子テーブル、つまり、、、および(外部キー)をempid含むemployeeですempname。これらの2つのテーブルを結合して、その特定の部門で働いている従業員の数とのような出力を取得したいと思います。結合、ビュー、カーソル、サブクエリ、グループ句などを使用してクエリを試しました。句を使用してクエリの半分のソリューションを取得でき、特定の部門の従業員数を確認できますが、把握できません。残りの半分を出します。saldeptnodeptnamegroup by

デパートメント

deptno    deptname
101       sales
102       hr
103       finance

従業員

empid  empname   sal    deptno
  1     john    1500$    101
  2     kevin   1000$    101
  3     james   1200$    101
  4     ford    700$     102
  5     david   855$     102
  6     george  955$     103

SQLクエリを使用して次の表を表示したいと思います。

deptname    no.of employees
sales            3
hr               2
finance          1
4

4 に答える 4

1

SELECT t1.deptname AS deptname、COUNT(1)AS"no。ofemployees" FROM table1 t1 JOIN table2 t2 ON t2.deptno = t1.deptno GROUP BY t1.deptno;

次の手順を実行して、これを再作成できます。

mysql> 
mysql> CREATE TABLE table1 (deptno INT NOT NULL, deptname VARCHAR(24) NOT NULL, PRIMARY KEY (deptno));
Query OK, 0 rows affected (0.01 sec)

mysql> CREATE TABLE table2 (empid INT NOT NULL, empname VARCHAR(48) NOT NULL, sal VARCHAR(16), deptno INT);
Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO table1 VALUES (101, "sales"), (102, "hr"), (103, "finance");
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> INSERT INTO table2 VALUES (1, "John", "1500$", 101);
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO table2 VALUES (2, "Kevin", "1200$", 101), (3, "James", "1000$", 101);
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> INSERT INTO table2 VALUES (4, "Ford", "700$", 102), (5, "David", "855$", 102), (6, "George", "955$", 103);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT t1.deptname AS deptname, COUNT(1) AS "no. of employees" FROM table1 t1 JOIN table2 t2 ON t2.deptno = t1.deptno GROUP BY t1.deptno;
+----------+------------------+
| deptname | no. of employees |
+----------+------------------+
| sales    |                3 |
| hr       |                2 |
| finance  |                1 |
+----------+------------------+
3 rows in set (0.00 sec)

mysql>
于 2012-07-23T09:09:17.207 に答える
1

お役に立てれば

Select deptname, count(1) no_employees
From table1 t1
Join table2 t2 on t1.deptno = t2.deptno
Group By deptname
Order By Count(1) desc
于 2012-07-23T09:06:29.357 に答える
0

次のコードを試してください。

select COUNT(*) from tblEmp E inner join tblDept d on d.Deptid=l.Deptid

これで問題が解決することを願っています。

于 2012-07-23T09:01:48.227 に答える
0

これを試して

select d.deptname,COUNT(*) [no.of employees]
from employee E join department D
on E.deptno=D.deptno
group by d.deptname
order by COUNT(*)
于 2012-07-23T09:06:44.890 に答える