【问题标题】:Query to retain tuples which were not subtracted查询保留未减去的元组
【发布时间】:2015-12-21 16:31:55
【问题描述】:

我有两张表如下

表1

name number
a    100
b    150
c    200

表2

name number
a    10
b    20

如何编写查询来减去两个表并保留值,例如c

输出应该是:

name number
a     90
b     130
c     200

我知道如何获取ab,只是不知道如何保留c

【问题讨论】:

  • 您使用的是哪个 RDBMS?

标签: mysql sql sql-server sql-server-2008 sql-server-2005


【解决方案1】:

使用LEFT JOINCOALESCE

SQL Fiddle

SELECT
    t1.name as name,
    numer = t1.number - COALESCE(t2.number, 0)
FROM table1 t1
LEFT JOIN table2 t2
    ON t2.name = t1.name

【讨论】:

  • 我试过了,它给我的答案为零它没有减去第二个表的内容,我希望表中的所有元组都从表 2 中减去元组,但如果元组不匹配,那么该值应保留
  • 尝试将 numer = t1.number - COALESCE(t2.number, 0) 替换为 (t1.number - COALESCE(t2.number, 0)) 作为数字
  • 我刚试了你给的,但似乎没有用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-02
  • 1970-01-01
  • 2013-09-17
  • 2019-11-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多