進銷存管理系統中,要統計商品的剩餘、銷售、總數(剩餘+銷售)的數量和金額。為了減少對資料庫的操作,使用一條sql查出結果。
1 剩餘數量及金額
2 銷售數量及金額
要求將兩行結果集合並成一行結果集
sql操作如下:
explain
select remain_total,remain_total_money,seller_count,seller_count_money,remain_total+seller_count as mileage_total,remain_total_money+seller_count_money as mileage_total_money from (
select
ifnull( sum( remain ), 0 ) remain_total,
ifnull( sum( remain * union_price ), 0 ) remain_total_money,
1 'id'
from
( select
wms_product_detail.*
from
`wms_product_detail`,
wms_product_detail_attribute
where
wms_product_detail.id = wms_product_detail_attribute.detail_id
and wms_product_detail.`status` = 0
and wms_product_detail.del_flag = 0
group by
wms_product_detail.id
) as product ) as tb1
left join ( select * from (
select
ifnull( sum( count ), 0 ) seller_count,ifnull(sum(now_price),0) seller_count_money,1 'id'
from
( (select
wms_order.*
from
`wms_product_detail`,
wms_order,
wms_product_detail_attribute
where
wms_product_detail.id = wms_order.detail_id
and wms_product_detail.id = wms_product_detail_attribute.detail_id
and wms_order.`status` = 0
and wms_order.del_flag = 0
group by
wms_order.id
) as tmp ) ) as ordertable) as tb2 on tb1.id=tb2.id
mysql將兩個表結果合併並分頁
功能 使用mysql中union all 將2個表中的資料查詢結果合併到乙個返回結果中。再針對結果統一排序 分頁操作等。注 2個表返回的列名必須一致 語句如下 select a.欄位,a.欄位,from select 表.欄位1,表.欄位2 from 表 where 條件 union all sel...
mysql 合併兩個查詢結果
顯然,查詢結果的time為主鍵,目的是將兩個查詢結果合成乙個結果。如果在 中實現,一次便利乙個表新增到另外乙個表中,效率非常低。那麼在mysql 中實現方式為 出金 withdraw select from select date complete time as time,sum amt as a...
mysql將兩個查詢結果顯示在一起
需求 我需要統計多個資料,每個資料需要在不同表進行查詢統計得出,且表與表這間沒有啥關係 我想把這些最終的資料顯示在一起 解決方案 想啥呢?可能嗎,建一張新錶把查出來資料插入進去,再查就顯示在一起了 當然我也強行做了各種試探,結果 如下 雖然最終效果實現了,但是這實際是對兩個表做了笛卡爾積,最終產生了...