[英]Pass value from query 1 to query 2
我有一個查詢聯接2表,如下所示:
SELECT * FROM Staff s INNER JOIN Account a on s.AccNo = a.AccNo WHERE a.Status = 'Active'
結果如下圖:
AccNo | Name | ID
------------------
1 | Alex | S01
2 | John | S02
得到員工編號后,我編寫第二個查詢以找出最大銷售額,如下所示:
SELECT s.ProductID,Max(s.Amount) from Sales s WHERE StaffID = 'S01' GROUP BY s.ProductID
員工“ S01”的最高銷售額如下:
ProductID | Amount
------------------
Cloth | 2000
如何結合這兩個查詢並成為如下結果? 謝謝
AccNo | Name | ID | Amount
--------------------------
1 | Alex | S01 | 2000
2 | John | S02 | 5000
您可以創建一個子查詢並加入它:
SELECT a.AccNo, b.Name, b.ID, c.maximum
FROM transaction as a
INNER JOIN Account as b
ON a.AccNo = b.AccNo
LEFT JOIN (SELECT StaffID, Max(Amount) as maximum FROM Sales GROUP BY StaffID) as c
ON c.StaffID = b.ID
WHERE b.Status = 'Active'
請參見SQLFiddle示例 (我嘗試猜測模式)
因此,您要做的是在staffId上加入銷售,然后進行分組。
SELECT a.AccNo,a.Name,a.ID,Max(s.Amount)
FROM Transaction t
INNER JOIN Account a on t.AccNo = a.AccNo
INNER JOIN Sales s on s.staffId = a.ID
WHERE a.Status = 'Active'
GROUP BY a.AccNo,a.Name,a.ID
您可以嘗試這樣的事情:
Select Account.*, Max(Sales.amount) from Sales
JOIN Account ON Sales.StaffID = Account.ID
where Account.status = 'Active'
group by Sales.ProductID, Account.AccNo, Account.Name, Account.ID
老實說,我不明白為什么您在查詢中使用Transascation表,因為您沒有使用它。
我認為這應該工作
只需加入即可檢索與每個員工相關的最大金額
從事務t中選擇t.AccNo,t.Name,t.ID,s.ProductID,Max(s.Amount)
內部聯接帳戶a開啟t.AccNo = a.AccNo
內聯銷售s.StaffID = a.ID
在a.Status ='Active';
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.