簡體   English   中英

將值從查詢1傳遞到查詢2

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM