带有Where子句的SQL Server视图

时间:2017-01-10 14:16:24

标签: sql sql-server sql-server-2014

我有一个非常复杂的视图,在SQL Server中返回5列,如果我使用SELECT * FROM PR_MASTER_VIEW查询视图,我会得到我希望看到的所有结果。但是,如果我在视图中添加一个简单的WHERE,我将无法获得预期的结果。例如,

  SELECT * FROM PR_MASTER_VIEW returns;

BL_ID|  M_DATE  |  BFH | SEQ|MT_ID
------------------------------------
   20|2015-01-01| 435.0| 402|0
   20|2014-01-02| 835.2| 403|0
   20|2013-02-03| 335.3| 404|0
   20|2012-06-04| 423.4| 405|0
   20|2011-04-09| 135.8| 406|0

BL_ID=20上添加过滤位置会返回此

SELECT * FROM PR_MASTER_VIEW WHERE BL_ID=20 returns;

BL_ID|  M_DATE  |  BFH | SEQ|MT_ID
------------------------------------
   20|2015-01-01| 435.0| 402|0
   20|2014-01-02| 835.2| 403|0
   20|2011-04-09| 135.8| 406|0

关于为什么我没有看到预期结果的任何想法? 我已经运行了SELECT DISTINCT BL_ID FROM PR_MASTER_VIEW,它只返回一条20

的记录

(UPDATE)

 create view PR_MASTER_VIEW as select bl_id, m_date, bfh, seq, mt_id  
 from PRM_SI_VIEW where d in ( select min (d) from PRM_SI_VIEW group by  bl_id, m_date, bfh, seq )

0 个答案:

没有答案