SQL - 如何GROUP BY

时间:2013-08-27 04:14:46

标签: sql database

/*Displays employees’ last names and the Job Title and GROUP Job Title*/

USE [EXAMPLEDB]
SELECT empLName
FROM tblEmployee

这是我感到困惑的地方,我如何使用包含员工姓氏和另一个员工职位的两个不同的表来做到这一点?

SELECT jobTitle
FROM tblJobTitle 
GROUP BY jobTitle

这些是我的表格:

--This Code Creates the Job Title Table--

CREATE TABLE [SHATTKudlerFineFoods].dbo.tblJobTitle
(
jobJobID varchar (4) CONSTRAINT PK_jobJobID PRIMARY KEY Not Null,
jobJobClass varchar (60) Not Null,
jobTitle varchar (60) Not Null,
jobDescription varchar (300) Not Null,
jobStatus varchar (11) Not Null
)

--This Code Creates the Employee Table--

CREATE TABLE [SHATTKudlerFineFoods].dbo.tblEmployee
(
empEmpID varchar (3) CONSTRAINT PK_empEmployeeID PRIMARY KEY Not Null,
empLName varchar (20) Not Null,
empFName varchar (15) Not Null,
empAddress varchar (30) Not Null,
empCity varchar (20) Not Null,
empState varchar (2) Not Null,
empZIPCode varchar (5) Not Null,
empAreaCode varchar (3) Not Null,
empPhoneNo varchar (8) Not Null,
empGender varchar (1) Not Null,
empDOB smalldatetime Not Null,
empAge Tinyint Not Null,
empHireDate smalldatetime Not Null,
empNoOfExempt Tinyint Not Null,
empMaritalStatus varchar (3) Not Null,
empSalary money Not Null,
empStoreID varchar (4) CONSTRAINT FK_strStoreID FOREIGN KEY REFERENCES
tblStores(strStoreID) Not Null,
empJobID varchar (4) CONSTRAINT FK_jobJobID FOREIGN KEY REFERENCES 
tblJobTitle(jobJobID) Not Null
)

2 个答案:

答案 0 :(得分:5)

你应该JOIN表:

SELECT jobTitle 
FROM tblJobTitle jt
INNER JOIN tblEmployee e on e.JobID = jt.ID
GROUP BY jobTitle

JobIDtblEmployee中的一列,引用jobTitle主键列(ID或其他)

答案 1 :(得分:0)

这不是一个群体,而是一个群体。

要加入,请列出FROM子句中的所有表,如下所示:

SELECT emp.empLName, job.jobTitle FROM tblEmployee emp, tblJob job

注意这不会做你想要的,因为两个表中的列需要有一个连接条件。按原样,此选择将​​为每个员工姓名提供一次输出每个职位名称。例如,如果有10个标题和100个员工,您将获得1000个结果。

如果在id表中调用了连接列tblEmployee,在emp_id表中调用了tblJob,则这是要使用的完整查询:

SELECT emp.empLName, job.jobTitle FROM tblEmployee emp, tblJob job WHERE emp.id = job.emp_id

请注意,group by用于汇总结果。例如,如果一个select为每个员工返回5行,并且您只希望其中一行在其中一列上有平均值,则group by是要使用的工具。