Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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 用于获取年度销售额(收入)的SQL语句是否正确?_Mysql_Sql_Database - Fatal编程技术网

Mysql 用于获取年度销售额(收入)的SQL语句是否正确?

Mysql 用于获取年度销售额(收入)的SQL语句是否正确?,mysql,sql,database,Mysql,Sql,Database,这句话对吗?在我看来,这让我得到了正确的结果,但我想验证一下。谢谢你的帮助 CUSTOMER (idCustomer,name,phone,email, markdown) ORDER (idOrder,day,Customer_idCustomer) ORDERITEM (idOrderItem, quantity, Order_idOrder, Product_idProduct) PRODUCT (idProduct,name,price,description) 编辑:使用联接(和每个

这句话对吗?在我看来,这让我得到了正确的结果,但我想验证一下。谢谢你的帮助

CUSTOMER (idCustomer,name,phone,email, markdown)
ORDER (idOrder,day,Customer_idCustomer)
ORDERITEM (idOrderItem, quantity, Order_idOrder, Product_idProduct)
PRODUCT (idProduct,name,price,description)
编辑:使用联接(和每个联接表):


编辑2:好的。所以我把我的数据放到Excel中,在这里进行计算,以验证结果,似乎带有JOIN的语句是正确的。谢谢大家

这可能是正确的解决方案:

SELECT SUM((oi.quantity * p.price) * c.markdown) FROM orderitem oi
JOIN product p ON oi.Product_idProduct = p.idProduct 
JOIN `order` o ON o.idOrder = oi.Order_idOrder 
JOIN customer c ON c.idCustomer = o.Customer_idCustomer 
AND (o.day BETWEEN '2019-01-01' AND '2019-12-31')

如果您想验证并测试该查询,那么在该查询中看到一个连接将是非常好的。今天的提示:切换到现代的显式
JOIN
语法。更容易写(没有错误),更容易读(和维护),并且更容易转换为外部连接(如果需要)。正确到什么程度?语法?格式?计算?没有将订单项连接到订单。所以,我猜你不会得到你想要的正确答案。据我所知,它没有计算出任何有用的东西。通过在数据上运行它,您应该能够看到这一点。
SELECT SUM((oi.quantity * p.price) * c.markdown) FROM orderitem oi
JOIN product p ON oi.Product_idProduct = p.idProduct 
JOIN `order` o ON o.idOrder = oi.Order_idOrder 
JOIN customer c ON c.idCustomer = o.Customer_idCustomer 
AND (o.day BETWEEN '2019-01-01' AND '2019-12-31')
SELECT SUM((oi.quantity * p.price) * c.markdown) FROM orderitem oi
JOIN product p ON oi.Product_idProduct = p.idProduct 
JOIN `order` o ON o.idOrder = oi.Order_idOrder 
JOIN customer c ON c.idCustomer = o.Customer_idCustomer 
AND (o.day BETWEEN '2019-01-01' AND '2019-12-31')