如何对多个表使用groupby连接语法

k75qkfdt  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(308)

我有3个表,adjustinline,items和itemmovement我要找的是,我需要从表中选择:adjustinline中的所有行与item表中的描述,以及itemmovement表sum(qty)-sum(qtyut)group by itemid和warehouseid中的现有数量。
调整内联线

itemid  warehouseid adjustbyquantity

1          2           5
1          1           3
2          2           4
3          1           5

项目

Id        description

1         Item 1
2         Item 2
3         Item 3

项目移动

itemid  warehouseid qtyin   qtyout

1          1         3  
1          1                  2
1          2         3  
1          2                  1
2          2         1

请求视图

Description warehouseid Onhandqty   Adjustbyqty

Item 1         2          2             5
Item 1         1          1             3
Item 2         2          1             4
Item 3         1          0             5

我试着使用这两种方法,但它们都没有给我正确的结果

SELECT sum(itemv.qtyin) sum(itemv.qtyout),adjo.warehouseid,adjo.itemid,
adjo.adjustbyquantity,itm.description

                        FROM adjustoutcopy adjo

                        LEFT JOIN  itemmovement AS itemv
                            ON  adjo.itemid=itemv.itemid AND 
                                adjo.warehouseid=itemv.warehouseid
                        LEFT JOIN  items AS itm
                            ON adjo.itemid=itm.Id

                        group by itemv.itemid,itemv.warehouseid 
                        ORDER BY adjo.Id DESC

如果itemmovation表中不存在itemid,则不会显示该行,因为代码正在使用内部联接。

u7up0aaq

u7up0aaq1#

自从你 GROUP BY 中的列 itemv 表,如果该表中没有条目,则不存在组。

jgzswidk

jgzswidk2#

终于解决了,代码如下:

SELECT itm.description,adjst.warehouseid,sumofqty,adjst.quantity

            FROM adjustoutcopy adjst
           LEFT JOIN (
              SELECT itemid,warehouseid,sum(qtyin)-sum(qtyout) AS sumofqty
              FROM itemmovement
              GROUP BY itemid,warehouseid
            ) s ON (adjst.codeid = s.itemid) AND
                    (adjst.warehouseid = s.warehouseid)
            LEFT JOIN items AS itm
                ON adjst.codeid=itm.Id

谢谢大家

相关问题