dongshen9058 2017-05-23 12:13
浏览 33

MySQL选择库存管理查询

I'm trying to get current stock from purchase and sale table but getting only one result.

Here is the query I wrote.

SELECT `I`.`id`, `I`.`modal`, `I`.`brand`, 
IFNULL(SUM(P.qty), 0) as p_qty, 
IFNULL(SUM(S.qty), 0) as s_qty, 
SUM(P.qty)-SUM(S.qty) as t_qty 
FROM `items` `I` 
    LEFT JOIN `purchase_details` `P` ON `P`.`item_id` = `I`.`id` 
    LEFT JOIN `sale_details` `S` ON `S`.`item_id` = `I`.`id` 
WHERE `I`.`id`
IN("1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70") 
GROUP BY `P`.`item_id`

Expected result : All the items should come with or without zero according to stock.

  • 写回答

2条回答 默认 最新

  • douhui1333 2017-05-23 12:20
    关注

    Try GROUP BY I.id

        SELECT
        `I`.`id`,
        `I`.`modal`,
        `I`.`brand`,
        IFNULL(SUM(P.qty),
        0) AS p_qty,
        IFNULL(SUM(S.qty),
        0) AS s_qty,
        SUM(P.qty) - SUM(S.qty) AS t_qty
    FROM
        `items` `I`
    LEFT JOIN
        `purchase_details` `P`
    ON
        `P`.`item_id` = `I`.`id`
    LEFT JOIN
        `sale_details` `S`
    ON
        `S`.`item_id` = `I`.`id`
    WHERE
        `I`.`id` IN(
            "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70"
        )
    GROUP BY
        `I`.`id`
    
    评论

报告相同问题?

悬赏问题

  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)