第一次發問
請多多指教
下面為A,B資料表
我有兩個問題
第一
如何用日期搜尋
搜尋到的資料先各把A,B資料表的數量相加
再把上述的兩筆資料再相加
而且寫在同一個SQL語法
EX:
我搜尋2017-01-01
會出現 (5+15)+(20+30)=70
算式當然不會出現 只出現值
第二
如何用日期搜尋
搜尋到的資料先各把A,B資料表數量*重量然後相加
再把上述的兩筆資料再相加
而且寫在同一個SQL語法
EX:
我搜尋2017-01-01
會出現 {(5*4)+(15*1)}+{(20*1)+(10*4)}=95
算式當然不會出現 只出現值
請幫忙解惑謝謝~
A TABLE
產品 數量 重量 日期
1 5 4 2017-01-01
2 10 3 2017-02-02
3 15 1 2017-01-01
4 20 2 2017-02-02
B TABLE
產品 數量 重量 日期
1 20 1 2017-01-01
2 15 3 2017-02-02
3 10 4 2017-01-03
4 30 2 2017-02-01
需求一
select sum(數量) from 表A where A.日期=to_date('2017/01/01','YYYY/MM/DD')
UNION
select sum(數量) from 表B where B.日期=to_date('2017/01/01','YYYY/MM/DD')
select sum(數量),日期
from
(select 數量 ,日期 from 表A
UNION
select 數量 ,日期 from 表B)
group by 日期
需求二
select sum(數量*重量) from 表A where A.日期=to_date('2017/01/01','YYYY/MM/DD')
UNION
select sum(數量*重量) from 表B where B.日期=to_date('2017/01/01','YYYY/MM/DD')
select sum(數量*重量),日期
from
(select 數量,重量,日期 from 表A
UNION
select 數量,重量,日期 from 表B)
group by 日期
select a.產品,a.日期,b.產品,b.日期,(case a.數量 is null then 0 else a.數量 end case +case b.數量 is null then 0 else b.數量 end case) 數量
from (select 產品,日期,sum(數量) 數量 from tablea group by 產品,日期) a
full join (select 產品,日期,sum(數量) 數量 from tablea group by 產品,日期) b
on a.產品=b.產品 and a.日期=b.日期
語法是MySQL的,試試看吧。
SELECT SUM(total) FROM (
SELECT a.數量 as total FROM a WHERE a.日期 = '2017-01-01'
UNION ALL
SELECT b.數量 as total FROM b WHERE b.日期 = '2017-01-01'
)
SELECT SUM(total) FROM (
SELECT (a.數量 * a.重量) as total FROM a WHERE a.日期 = '2017-01-01'
UNION ALL
SELECT (b.數量 * b.重量) as total FROM b WHERE b.日期 = '2017-01-01'
)