我有四张桌子:
SELLER (ID, NAME)
CLIENT (ID, NAME)
SELLER_CLIENT (SELLER_ID, CLIENT_ID)
CLIENT_SOLD (CLIENT_ID, VALUE, DATE)
我需要编写查询来挑选所有卖家在所选日期中购买了超过500(价值)的所有卖家。任何人都可以给我一些小提示我该怎么做或使用什么?
我的基本知识是我需要使用
SELECT * FROM SELLER WHERE...
EDIT 例 卖家表
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 TABLE
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
的卖家答案 0 :(得分: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
答案 1 :(得分:0)
试试这个:
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