有效的选择查询在与插入语句一起使用时返回"不是按表达式分组"错误



我正在尝试实现以下查询:

INSERT
INTO sales_data_arch
(
order_date,
orderId,
orderName,
state,   
hour,
product,
cardNo,
amount,
createdon,
createdby
)
WITH vw_product AS
(select * from productTable 
where group_name = 'Product_ABC'
),
vw_cardDetails AS
(
select * from cardDetailsTable 
where group_name = 'Product_Card_Details'
),
vw_sales AS
(SELECT sd.order_date order_date,
sd.order_id,
sd.hour,
vp.product_name,
gtm.cardNo ,
SUM(sd.amount) amount_total
FROM productSalesData  sd
LEFT JOIN vw_product vp
ON sd.productId = vp.productId
LEFT JOIN vw_cardDetails gtm
ON sd.transactionId     = gtm.transactionId
WHERE order_Date = TO_CHAR(SYSDATE - 1, 'yyyymmdd')
GROUP BY sd.order_date,
sd.order_id,
sd.hour,
vp.product_name,
gtm.cardNo
)
SELECT TO_CHAR(TO_DATE(order_date, 'yyyymmdd'), 'dd-MM-yy') order_date,
orderId,
orderName,
ro.state,
hour,
product_name product,
cardNo,
amount_total amount,
SYSDATE createdon,
'task_scheduler' createdby,
null
FROM vw_sales con
LEFT JOIN stateTable ro
ON con.stateId   = ro.stateId
WHERE cardNo IS NOT NULL
AND product_name IS NOT NULL
; 

选择查询返回有效结果。但是,当添加插入语句时,我收到"不是按表达式分组"错误。

我们尝试删除 where 子句,查询在删除相同子句后有效,但是,我们需要数据过滤器来避免目标表中重复的数据组合。

任何帮助将不胜感激。

除非是拼写错误,否则此处缺少逗号:

GROUP BY sd.order_date         --> here
sd.order_id                  --> here
sd.hour, 

在查询中使用/+NO_QUERY_TRANSFORMATION/提示解决了问题

相关内容

最新更新