簡體   English   中英

從表中選擇另一個表中的條件

[英]Select from table where condition in another table

我有四個表:

SELLER (ID, NAME)
CLIENT (ID, NAME)
SELLER_CLIENT (SELLER_ID, CLIENT_ID)
CLIENT_SOLD (CLIENT_ID, VALUE, DATE)

我需要編寫查詢以選擇在選定日期客戶購買了超過500個(值)的所有賣方。 誰能給我一個小提示,我該怎么做或使用什么?

我的基本知識是我需要使用

SELECT * FROM SELLER WHERE...

編輯示例賣方表

ID | NAME
1 | s1
2 | s2
3 | s3
4 | s4
5 | s5
6 | s6

客戶表

ID | NAME
1 | k1
2 | k2
3 | k3
4 | k4
5 | k5
6 | k6

CLIENT_SELLER表

CLIENT_ID | SELLER_ID
1         | 2
2         | 3
3         | 3
4         | 1
5         | 6
6         | 6

CLIENT_SOLD

CLIENT_ID | VALUE | DATE
1 | 600 | 13.04.2015
2 | 360 | 22.02.2015
3 | 501 | 11.06.2015
4 | 800 | 09.01.2015
5 | 112 | 12.02.2015
6 | 98 | 08.02.2015

而且所有時間查詢都應返回ID為2、3、1的賣家

一個簡單的相關子查詢來對值求和就可以了:

SELECT s.* FROM SELLER s 
WHERE ( SELECT SUM(Value) 
        FROM CLIENT_SOLD cs 
        WHERE cs.SELLER_ID = s.ID 
          AND cs.DATE = @date) > 500

嘗試這個:

SELECT s.id,s.name FROM CLIENT_SOLD cs
INNER JOIN SELLER_CLIENT sc 
ON cs.CLIENT_ID=sc.CLIENT_ID
INNER JOIN SELLER s
ON s.ID=sc.SELLER_ID 
WHERE cs.VALUE>500
AND cs.DATE=@DATE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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