Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql选择上个月的金额(价格)_Mysql_Sql - Fatal编程技术网

Mysql选择上个月的金额(价格)

Mysql选择上个月的金额(价格),mysql,sql,Mysql,Sql,我有这张桌子 stk +---------+--------------+ | Field | Type | +---------+--------------+ | id | int(11) | | name | varchar(255) | | type_id | int(11) | +---------+--------------+ stk_type +-------+--------------+ | Field | T

我有这张桌子

stk
+---------+--------------+
| Field   | Type         |
+---------+--------------+
| id      | int(11)      | 
| name    | varchar(255) | 
| type_id | int(11)      |
+---------+--------------+

 stk_type

+-------+--------------+
| Field | Type         |
+-------+--------------+
| id    | int(11)      | 
| name  | varchar(255) | 
| price | int(11)      | 
+-------+--------------+

    customer
+-------+--------------+
| Field | Type         | 
+-------+--------------+
| id    | int(11)      | 
| fio   | varchar(255) | 
+-------+--------------+
and sales

+-------------+-----------+
| Field       | Type      | 
+-------------+-----------+
| id          | int(11)   | 
| customer_id | int(11)   |
| stk_id      | int(11)   | 
| date        | timestamp |
+-------------+-----------+
我需要选择上个月我拿到了多少钱; 我不知道如何在一个查询中选择它

SELECT stk_id FROM sales
WHERE date >= DATE_SUB( CURDATE(), INTERVAL 1 MONTH )
现在我有上个月的所有stk ID,我需要计算总和,但是如果我有重复的密钥,我怎么做呢:例如:

如果最后一次查询返回stk_id的1,1,1,2,3,3 如果
stk_type
中的价格等于next,我如何计算总和:

id 1 price 100
id 2 price 200
id 3 price 150
所以对于这个例子,我应该得到这个结果800

我需要选择所有的stk_id,以某种方式选择价格并计算总数。 正在寻求帮助,谢谢

SELECT sales.stk_id, sum(stk_type.price) 
FROM sales LEFT JOIN stk_type ON (sales.stk_id=stk_type.id) 
WHERE date >= DATE_SUB( CURDATE(), INTERVAL 1 MONTH ) 
GROUP BY sales.stk_id;
我假设“sales.stk_id=stk_type.id”是它们之间的关系

编辑:忘记where子句。

尝试此sql查询

SELECT stk_id, SUM(price) FROM sales
LEFT JOIN stk ON stk_id = stk.id
LEFT JOIN stk_type ON type_id  = stk_type.id
WHERE date >= DATE_SUB( CURDATE(), INTERVAL 1 MONTH )
GROUP BY stk_id

它起作用了,但我不知道;I don’我不需要一个小组,如果没有它,工作效率很高,谢谢