sql - 隐蔽 Oracle 查询到 Sql Server 查询
问题描述
我正在尝试在 SSMS 中运行此查询,问题是我返回了列 creation_date、transaction_type 和 RecordType,这很好,但是当我在选择查询计数(column_1)中运行时,我收到以下错误
列 'table_1.CREATION_DATE' 在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
DECLARE @creation_date date
, @transaction_type varchar
, @record_type int
, @column_1 varchar
select count(column_1) AS Volume
,JudgmentMonth=RIGHT(REPLACE(CONVERT(VARCHAR(7), creation_date, 103), '/', ''), 7)
,transaction_type,
REPLACE(record_type, 3, 2) as RecordType
from table_1
where transaction_type = 'PG'
and column_1 = 'CCJ'
关于我做错了什么的任何想法,我是 sql server 的新手并试图转换这个 oracle 查询?
非常感谢
解决方案
Count 是一个聚合函数,因此您需要按其他所有内容进行分组:
DECLARE @creation_date DATE
, @transaction_type VARCHAR
, @record_type INT
, @column_1 VARCHAR;
SELECT COUNT(column_1) AS Volume
, RIGHT(REPLACE(CONVERT(VARCHAR(7), creation_date, 103), '/', ''), 7) AS JudgmentMonth
, transaction_type
, REPLACE(record_type, 3, 2) AS RecordType
FROM table_1
WHERE transaction_type = 'PG'
AND column_1 = 'CCJ'
GROUP BY RIGHT(REPLACE(CONVERT(VARCHAR(7), creation_date, 103), '/', ''), 7)
, transaction_type
, REPLACE(record_type, 3, 2);
推荐阅读
- python - 计算 2 列中共享相同值的单元格数
- php - 有什么方法可以避免在 Laravel 5.7 Eloquent 中加载父级时加载这些 $with 模型?
- php - 实施具有强客户身份验证的条带
- jquery - jQuery验证后将表单发布数据传递给控制器功能
- javascript - NGRX dispatch 和 select 的执行顺序
- android - Android Studio 3.5:无法解析 LocalBroadcastManager
- html - 如何使用 flexbox 突出显示导航栏链接的整个“框部分”?
- android - 发布到 google play 的应用程序中是否允许使用这种类型的课程?
- java - 创建 Java Swing 弹出窗口以请求详细信息
- javascript - 如何在 React 项目中加载 Google Places JS API 库?