mysql

时间:2018-01-31 17:41:50

标签: mysql

我一直在搜索并尝试这个查询,但我没有得到正确的结果,我仍然是学生,仍在探索mysql查询。 我有两个彼此无关的表,stock表和order_details表。 库存中的库存记录是产品ID,数量和收到或添加的日期,而订单详细说明了订单的详细信息,其中有订单的产品和数量。

现在我想从库存和订单详细信息中选择产品的所有数量,然后减去库存总量和订单明细总数。

    select
 (Select  sum(stocks.quantity) as sq from  stocks  group by product_id)
 - 
(Select sum(order_details.quantity) as oq from order_details group by product_id) as available_quantity;

我有这个查询,但它显示错误消息 “错误代码:1242。子查询返回超过1行”

然后我有这个查询但只返回一列

     select 
          (Select sum(stocks.quantity) as sq from  stocks where stocks.product_id="2" group by product_id) - 
(Select sum(order_details.quantity) as oq from order_details where  order_details.product_id="2" group by product_id) as available_quantity ;

然后在减去之后,添加一个条件,其中只获取多于或等于1的avaialable_quantity。

我的桌子 CREATE TABLE stocks(   stock_id int(11)NOT NULL AUTO_INCREMENT,   product_id int(11)DEFAULT NULL,   quantity double DEFAULT NULL,   date_added时间戳NULL DEFAULT CURRENT_TIMESTAMP,   PRIMARY KEY(stock_id),   KEY prod_fk_idxproduct_id),   CONSTRAINT prod_fk FOREIGN KEY(product_id)引用productsprod_id)ON更新没有操作更新无操作 );

CREATE TABLE order_details(   order_details_id int(11)NOT NULL,   order_id int(11)NOT NULL,   product_id int(11)DEFAULT NULL,   quantity int(11)DEFAULT NULL,   price十进制(5,2)DEFAULT NULL,   主要关键(order_details_id) );

0 个答案:

没有答案