iT邦幫忙

0

請問sql語法

  • 分享至 

  • xImage

第一次發問
請多多指教

下面為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
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
evio0502
iT邦新手 2 級 ‧ 2017-03-09 17:11:54
最佳解答

需求一

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 日期
WilliamHuang
iT邦研究生 1 級 ‧ 2017-03-09 15:02:24
【**此則訊息已被站方移除**】
2
做工仔人!
iT邦大師 1 級 ‧ 2017-03-09 15:19:05

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.日期

0
jsgao0
iT邦新手 5 級 ‧ 2017-03-09 16:50:17

語法是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'
)

參考資料

我要發表回答

立即登入回答