字段减法sql server

Posted

技术标签:

【中文标题】字段减法sql server【英文标题】:field subtraction sql server 【发布时间】:2021-10-14 10:12:42 【问题描述】:

如果我想将字段彼此相减,

即在 A 中有 11 个字段被描述为“Faktura zakupu”,在 B 中有 5 个字段被描述为“Faktura zakupu”。我想以 6 项 'Faktura zakupu' (11-5 = 6) 的形式返回记录

我尝试了 EXCEPT 操作,但它没有返回想要的结果

我需要执行什么操作?

【问题讨论】:

您如何确定 table1 第一行中的 (Faktura zakupu, Original) 应该与 table2 中第一行(而不是任何其他行)中的 (Faktura zakupu, Original) 匹配? @SalmanA 没有id就没有这种可能吗? 如果您在两个表中都有 id 并说表 A 中的 id #1 取消了表 2 中的 id#1,那么这将起作用。但我不认为你有这样的 id。 这能回答你的问题吗? Alternative for "Except All" in SQL Server 【参考方案1】:

您可以将行号添加到两个表中的每一行。然后 SQL Server 可以确定表 A 中的第一个 (Faktura zakupu, Original) 与表 B 中的第一个 (Faktura zakupu, Original) 重复,并在 EXCEPT 操作期间将其删除:

SELECT Name, StatusReq, ROW_NUMBER() OVER (PARTITION BY Name, StatusReq ORDER BY (SELECT NULL))
FROM a

EXCEPT

SELECT Name, StatusReq, ROW_NUMBER() OVER (PARTITION BY Name, StatusReq ORDER BY (SELECT NULL))
FROM b

它将从表 A... 返回 6 行,编号为 6 到 11。

【讨论】:

以上是关于字段减法sql server的主要内容,如果未能解决你的问题,请参考以下文章

SQL 当表中某个字段的值为NULL。假如这个值为NULL的时候。我想当成0来做减法处理。该怎么弄?

SQL请教大家一个日期的加减法

sql server新增字段语句

SQL server拆分字段的SQL语句

请问SQL server 中如何更新字段

sql server 2008怎么修改视图中的字段属性!!例如修改字段名和字段类型!