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

USE [EXAMPLEDB]
SELECT empLName
FROM tblEmployee

ここで混乱します。従業員の姓と従業員の役職を含む 2 つの異なるテーブルを使用してこれを行うにはどうすればよいでしょうか。

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
)
4

2 に答える 2

5

JOINテーブルを次のようにする必要があります。

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

JobID主キー列 (またはその他)tblEmployeeを参照するの列です。jobTitleID

于 2013-08-27T04:18:07.983 に答える
0

これは group by ではなく、join です。

結合するには、次のように FROM 句にすべてのテーブルをリストします。

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

ただし、2 つのテーブルの列に結合条件が必要なため、これではうまくいかないことに注意してください。現状では、この select は、従業員名ごとに 1 回ずつ、すべての役職を出力します。たとえば、10 の役職と 100 人の従業員がいる場合、1000 の結果が得られます。

結合列がテーブルで呼び出され、テーブルで呼び出される場合、idこれtblEmployeeは使用する完全なクエリです。emp_idtblJob

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

group by結果を集計するために使用されることに注意してください。たとえば、select が従業員ごとに 5 行を返し、列の 1 つで平均を含む 1 行のみが必要な場合group byは、 を使用するツールです。

于 2013-08-27T04:22:54.960 に答える