SELECT card_num,
COUNT(merchant_code)
from e_transaction
where trans_date between '20161017 00:00' and '20161017 23:59'
and channelid='02'
and trans_code='P'
and card_num in (select card_num,
sum(trans_amount)
from e_transaction
where trans_date between '20161017 00:00' and '20161017 23:59'
and channelid='02'
and trans_code='T'
and card_num not in (select card_num
from e_transaction
where trans_date between '20160724 00:00' and '20161016 23:59')
group by card_num
having sum(trans_amount) > 100000)
group by card_num
having count (merchant_code) > 1
我不断收到此查询的语法错误,但似乎无法找到错误的位置。我试图使用相同的merchant_code为多个card_num假脱机今天trans_amount大于100000而在20160724和昨天之间找不到
错误消息
[语法附近','] [关键字附近的语法不正确 '组']
答案 0 :(得分:0)
正确格式化查询后,很容易看到问题。在您的第一个嵌套选择中,您写道:
;i < N || f(xNext) > error;
and card_num in (select card_num,
sum(trans_amount)
from e_transaction
...)
期待一个列,但您的嵌套选择是两个。您需要做的就是从嵌套选择中删除in
,如下所示:
sum(trans_amount)