SELECT A.Expr1,C.sign_time 
From omSystem..View_Emp A LEFT OUTER JOIN 
 (SELECT * FROM EastRiver..TimeRecords B
  WHERE (B.sign_time >= :sign_time1) AND (B.sign_time> :sign_time2)) C   
  ON A.Expr1 = C.card_id 
其中A为视图,B是一个表,这样运行以后,在DBGrid中,C.sign_time这项显示不出来,A.Expr1可以显示,这是怎么回事呀

解决方案 »

  1.   

    呵呵,是不是C检索后没有结果啊,你使用的是Left join, sign_time空是正常的,
      

  2.   

    SELECT A.Expr1,B.sign_time 
    From omSystem..View_Emp A 
        LEFT OUTER JOIN EastRiver..TimeRecords B ON A.Expr1 = B.card_id 
    WHERE (B.sign_time >= :sign_time1) AND (B.sign_time> :sign_time2)
    这样写效率好像也不慢,楼主试试.
      

  3.   

    楼上这样写的话就找不出sign_time为空的,只会在DBGrid中列出sign_time不为空的记录呀,我要包括sign_time不为空的记录也显示出来
      

  4.   

    你的SQL语句应比 AllDreamWillDo(恍惊起而长嗟)提供的效率更好,先仔细看看两个表的数据吧。
      

  5.   

    我昨天解决了,好像用视图不能用SQL的动态参数的,不知道为什么,我不用动态参数就可以了,问大家是不是这个原因呀