首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MS SQL2008 R2 -如何比较或获取两个查询的差异

MS SQL2008 R2 -如何比较或获取两个查询的差异
EN

Stack Overflow用户
提问于 2012-05-02 21:30:13
回答 4查看 415关注 0票数 0

首先,我想感谢你们对我的问题和其他问题的所有帮助。

我有MS SQL2008 R2,我得到了两列之和,如下所示:

代码语言:javascript
复制
SELECT SUM(RATE+RATE_ADDITIONAL) FROM LOADS WHERE INVOICED=1 
and NOT OV_FACTORING=2 and DATE_INVOICED >= '1/1/2007' 
and DATE_INVOICED <= '5/1/2012'

但是当我像这样尝试的时候:

代码语言:javascript
复制
SELECT SUM(RATE+RATE_ADDITIONAL) FROM LOADS WHERE INVOICED=1 
AND OV_FACTORING=3 OR OV_FACTORING=4 OR OV_FACTORING=5 
and DATE_INVOICED >= '1/1/2007' and DATE_INVOICED <= '5/1/2012'

当它应该是相同的时候,它会得到一个不同的总数,因为在OV_FACTORING中,唯一的值是: 2,3,4和5。

我有一个名为LOAD_NO的列,我希望获得在另一个查询中不同或不存在的LOAD_NO,因此可以比较这两个查询,并输出不同的load_no或显示在其中一个查询中而不出现在另一个查询中的up。

我在网站上尝试了一些示例,但无法让它们正常工作。

再次感谢你的帮助...

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-02 21:36:13

要获得相同的结果,您需要将OV_FACTORING过滤器隔离在一起,如下所示:

代码语言:javascript
复制
SELECT SUM(RATE+RATE_ADDITIONAL) 
FROM LOADS WHERE INVOICED=1 AND 
(OV_FACTORING=3 OR OV_FACTORING=4 OR OV_FACTORING=5) AND 
DATE_INVOICED >= '1/1/2007' AND DATE_INVOICED <= '5/1/2012'
票数 1
EN

Stack Overflow用户

发布于 2012-05-02 21:35:36

如果你想在OV_FACTORING中限制,你可以这样做:

代码语言:javascript
复制
SELECT OV_FACTORING, SUM(RATE+RATE_ADDITIONAL) 
  FROM dbo.LOADS 
  WHERE INVOICED = 1
  AND OV_FACTORING IN (3,4,5)
  AND DATE_INVOICED >= '20070101' 
  AND DATE_INVOICED <= '20120501'
  GROUP BY OV_FACTORING;

或者如果您真的想要OR语句。然后你可以这样做:

代码语言:javascript
复制
SELECT OV_FACTORING, SUM(RATE+RATE_ADDITIONAL) 
  FROM dbo.LOADS 
  WHERE INVOICED = 1
  AND (OV_FACTORING=3 OR OV_FACTORING=4 OR OV_FACTORING=5)
  AND DATE_INVOICED >= '20070101' 
  AND DATE_INVOICED <= '20120501'
  GROUP BY OV_FACTORING;
票数 2
EN

Stack Overflow用户

发布于 2012-05-02 21:34:23

要查看表中的数字是否准确,请检查以下各项的结果:

代码语言:javascript
复制
SELECT OV_FACTORING, SUM(RATE+RATE_ADDITIONAL) 
  FROM dbo.LOADS 
  WHERE INVOICED = 1
  AND DATE_INVOICED >= '20070101' 
  AND DATE_INVOICED <= '20120501'
  GROUP BY OV_FACTORING;

一些与问题无关的一般性评论:

  • 回车符和缩进使查询的可读性提高100倍
  • 从不使用日期的区域格式-是2012年5月1日还是1月5日?(blog post)
  • specify是查询的架构前缀
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10414794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档