我的以下查询不起作用。我是SQL新手。
select * from output_temp a
inner join Post_vld_temp b
on a.bus_event=b.bus_event
where b.rej_fl='Y'and a.del_fl='Y' and sum(a.trn_amount)='0'
group by trn_group_no,process_date.
使用此查询我想获取rej_fl=Y,del_fl='Y'
的{{1}}和sum of(Transaction_amt)='0'
的所有记录。
答案 0 :(得分:0)
我看到一堆错误。首先,除非您使用的是mysql,否则您需要按最终结果中的每个字段进行分组,除了聚合(如sum())。即使在我的SQL中你应该这样做,否则你可能会得到不好的结果。
接下来,您无法在where子句中进行聚合。 Aggreagates属于hasa子句,它在group by之后(在此之前)sp sum(a.trn_amount)=' 0' 需要转向有条款。
Next在任何情况下都不要在具有内部联接的查询中使用select *。你是不需要的返回数据,这对我的数据库来说总是一个坏主意(更糟糕的是在数据库中会有很多查询运行它)并且它是一个SQL反模式,所以你不妨那就是现在。 JUst现在停止这种坏习惯。