2017-10-20 133 views
0

相當新的SQL編碼區域並尋求一些幫助。SQL 2表查詢

基本上有2個員工表1和1個存儲他們付款明細的地方。

尋找一個查詢,其中列出了他們的姓名和付款率存儲在兩個表中。

到目前爲止,我有

SELECT paymentRate 
FROM inStore 
WHERE employeeID IN (SELECT employeeID 
        FROM employee 
        WHERE employeeID = 'C1234567') 

這給了我支付率的結果。我需要顯示存儲在employee表中的名稱。然而,經過一段時間的故障排除後,我遇到了一些困難,我相信這很簡單。但是,當我嘗試更改我的查詢時,我不斷收到各種錯誤。任何援助將不勝感激!提前致謝!

+0

你在inStore平板電腦中是否有'employee_id'的外鍵,對吧? – Dalton

+0

嘗試如下所示:'select e.employee_name,inS.paymentRate from employee e,inStore inS where e.employee_id = inS.employee_id' – Dalton

+0

如果您提供表模式,示例數據以及你試圖產生的結果。 – Brian

回答

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 
0

如果我理解了您的查詢,您的意思是您希望在查詢時顯示員工姓名?如果是這樣,你會想要使用聯接作爲你的SQL查詢的一部分。

例如說,你要員工鮑勃·羅賓斯顯示出來,你需要像一個查詢如下:

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等一遍一遍

希望幫助

編輯:這將是很好的,以及有參照完整性目的

建立以及一個外鍵關係