iT邦幫忙

0

如何用SQL語法將兩個資料表中的特定欄位中的數字做相減,如圖中藍色表格所示

  • 分享至 

  • xImage

https://ithelp.ithome.com.tw/upload/images/20220125/20146045o76fj68ZpN.png

我曾經試過select (select a.s1 from a a) - (select b.s1 from b b) as '相減' 但失敗了

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
居然解出來了
iT邦好手 1 級 ‧ 2022-01-25 14:35:20
最佳解答

可能要加上條件判斷

select (a.s1-b.s1) as s1相減 
from a as a,b as b
where a.sqid=b.sqid
3
阿恢
iT邦新手 4 級 ‧ 2022-01-25 14:39:59
CREATE TABLE a (
  sqid INT,
  s1 decimal(12,2),
  s2 decimal(12,2),
  s3 decimal(12,2)
);
CREATE TABLE b (
  sqid INT,
  s1 decimal(12,2),
  s2 decimal(12,2),
  s3 decimal(12,2)
);
INSERT INTO a (sqid, s1, s2, s3)
VALUES (1,4.75,4.5,4.5);
INSERT INTO a (sqid, s1, s2, s3)
VALUES (2,5,4.75,4.75);
INSERT INTO b (sqid, s1, s2, s3)
VALUES (1,2.75,4.5,4.5);
INSERT INTO b (sqid, s1, s2, s3)
VALUES (2,2.5,3.75,3.75);

SELECT a.s1-b.s1 AS s1相減,a.s2-b.s2 AS s2相減,a.s3-b.s3 AS s3相減 FROM a JOIN b ON a.sqid = b.sqid
2
kw6732
iT邦研究生 5 級 ‧ 2022-01-25 17:08:23

感覺上 用JOIN就可以解決的式子

SELECT a.sqid , a.s1, a.s2, a.s3, b.s1, b.s2, b.s3,
a.s1-b.s1 d_s1, a.s2-b.s2 d_d2, a.s3-b.s3 d_s3
FROM taba a left join tabb b ON a.sqid=b.sqid

全部秀出來 長上面那樣

SELECT a.s1-b.s1 d_s1, a.s2-b.s2 d_d2, a.s3-b.s3 d_s3
FROM taba a left join tabb b ON a.sqid=b.sqid

不全部秀出來 長這樣

如果怕遇上 NULL 可以用 ISNULL(a.s1) 先包起來在運算

我要發表回答

立即登入回答