编码的SQL领域相当新,并寻求一些帮助。
基本上有2个表1用于员工,1个用于店员,这是存储其付款细节的地方。
希望查询列出两个表中存储的名称和付款率。
到目前为止我已经
了SELECT paymentRate
FROM inStore
WHERE employeeID IN (SELECT employeeID
FROM employee
WHERE employeeID = 'C1234567')
这给了我付款率的结果。我需要在其中显示名称,该名称存储在employee表中。但经过一段时间的故障排除后,我遇到了一些困难,我确信这很简单。但是,当我尝试更改查询时,我不断收到各种错误。任何援助将不胜感激!提前谢谢!
答案 0 :(得分:0)
希望您的InStore表包含针对单个员工的多条记录。请参考下面的sql查询。此查询是用T-SQL编写的。
DECLARE @Employee TABLE
(
Id INT,
Name VARCHAR(MAX)
)
DECLARE @InStore TABLE
(
Id INT,
Rate MONEY,
EmpId INT
)
INSERT INTO @Employee ( Id, Name )
VALUES ( 1,'ABC'),( 2,'DEF'),( 3,'GHI')
INSERT INTO @InStore( Id, Rate, EmpId )
VALUES ( 1, 10, 1 ), ( 2, 20, 2 ), ( 3, 30, 3 ),( 4, 40, 3 )
SELECT emp.Id,emp.Name,SUM(ins.Rate)
FROM @Employee emp
INNER JOIN @InStore ins ON ins.EmpId = emp.Id
GROUP BY emp.Id, emp.Name
答案 1 :(得分:0)
如果我理解您的查询,您的意思是您希望在进行查询时显示员工姓名?如果是这样,您可能希望在SQL查询中使用Join。
例如,假设您希望员工Bob Bobbins出现,您将需要如下查询:
SELECT i.paymentRate, e.FirstName, e.LastName FROM inStore as i
inner join employee as e on i.employeeID = e.employeeID
WHERE i.employeeID ='C1234567'
因为我和e只是建立别名的方法所以你不需要一遍又一遍地重新输入employee.firstname等
希望有所帮助
编辑:为了参照完整性目的而建立外键关系也是好的