sql查询返回不同的结果

时间:2014-11-05 11:38:53

标签: sql postgresql

这些是我的2个查询,执行时会返回不同的结果,一个是子查询,另一个是使用连接。

请指导我决定更好的一个,这需要是通用的sql(因为我不知道客户端RDBMS)

- 提供正确的结果

select count(*) from cardh
where email_id isnull 
and to_date(dt,'YYYYMMDD') < (SELECT (date_trunc('MONTH',getdate()) + INTERVAL '4 MONTH - 1 day')::date)    
and  sts = (SELECT ref_id                                                                       
FROM ref
WHERE typ = 'ActS'                                                                     
AND   desc LIKE 'Act%')

和第二个查询 - 不正确的结果

select count(*) from cardh a inner join ref b on b.ref_id=a.sts
where a.email_id isnull 
and to_date(a.dt,'YYYYMMDD') < (SELECT (date_trunc('MONTH',getdate()) + INTERVAL '4 MONTH - 1 day')::date)
and b.typ = 'Acts'  AND   b.desc LIKE 'Act%'

我使用postgres

在第二个地方搞砸了

0 个答案:

没有答案