Error after add group by and aggregation functions通过向Oracle查询添加组,并得到一个错误
该查询运行,而无需通过聚合函数组和好。在我添加group和aggregate函数之后,它给了我这个错误。我是查询的入门者。任何进展都会有所帮助。该公司正在使用Netsuite作为ERP系统。 Netsuite正在使用Oracle数据库。我正在使用ODBC连接到他们的数据库。
Select to_number(to_char(Transactions.trandate, 'YYYY')) as Year,
to_number(to_char(Transactions.trandate, 'MM')) as Month,
NVL(Parent.name, Entity.name) as Customer,
Case
When Upper(Substr(Replace(Items.name,'.',''),1,4)) IN ('MEAL', 'BASE', 'BOLT', 'BITE', 'FUEL')
THEN Upper(Substr(Replace(Items.name,'.',''),1,4))
ELSE Items.name
END as Item,
Accounts.type_name as Account,
-sum(Transaction_lines.amount) as Sales
From Transactions
Left Join Transaction_lines ON Transactions.transaction_id=Transaction_lines.Transaction_id
Left Join Items ON Transaction_lines.item_id=Items.item_id
Left Join Accounts ON Transaction_lines.account_id=Accounts.account_id
Left Join Entity ON Transactions.entity_id=Entity.entity_id
Left Join Entity as Parent on Entity.parent_id=Parent.entity_id
Where transactions.trandate >= '2013-1-1'
and Transactions.transaction_type IN ('Invoice', 'Item Fulfillment', 'Cash Sale')
and Accounts.type_name IN ('Income', 'Expense', 'Cost of Goods Sold')
Group By
to_number(to_char(Transactions.trandate, 'YYYY')),
to_number(to_char(Transactions.trandate, 'MM')),
NVL(Parent.name, Entity.name),
Case
When Upper(Substr(Replace(Items.name,'.',''),1,4)) IN ('MEAL', 'BASE', 'BOLT', 'BITE', 'FUEL')
THEN Upper(Substr(Replace(Items.name,'.',''),1,4))
ELSE Items.name
END,
Accounts.type_name
Order By Year, Month, Customer, Item, Account
看起来像它不允许我编辑我的任务,一旦我发布,图片没有显示。这是错误。 DataSource.Error:ODBC:错误[42000] [NetSuite] [ODBC 64位驱动程序] [OpenAccess SDK SQL引擎]无效的SQL语法。选择列表和排序方式的所有列应该已经设置了函数或者是GROUP BY子句的一部分。[10136] 详细信息: DataSourceKind = Odbc DataSourcePath = dsn = Netsuite OdbcErrors =表 –
最好将错误添加为文本而不是图像。 – sstan
错误很明显,您需要在组中添加与select中相同的非agregation列.... so'SELECT A,B,MAX(something),MIN(something)'need' GROUP A,B' –