sql - 日期字段不包含在聚合函数或 GROUP BY 子句中
问题描述
我正在尝试使用三个连接表来计算“本月至今”。它总是给我错误“不包含在聚合函数或 GROUP BY 子句中”日期字段是S.BUS_DAT 我尝试了很多事情,但总是得到同样的错误。任何建议这是我使用的代码
SELECT
-- Select from IM_IN
M.ITEM_NO,
M.DESCR,
N.QTY_ON_HND,
M.PRC_1,
N.LST_COST,
N.LST_RECV_DAT,
--Select from IM_ITEM
M.CATEG_COD,
M.ATTR_COD_1,
M.ITEM_VEND_NO,
M.ALT_1_UNIT,
M.ALT_1_NUMER,
M.LST_COST,
count (S.BUS_DAT) AS BUS_DAYS,
**sum (QTY_SOLD) OVER (PARTITION BY Month (S.BUS_DAT))as **MTD****
FROM
dbo.IM_INV N
INNER JOIN dbo.IM_ITEM M
ON
N.ITEM_NO = M.ITEM_NO
INNER JOIN
dbo.PS_TKT_HIST_LIN S
ON
N.ITEM_NO = S.ITEM_NO
Group by
M.ITEM_NO,
M.DESCR,
M.ITEM_VEND_NO,
M.CATEG_COD,
M.ATTR_COD_1,
N.QTY_ON_HND,
N.LST_COST,
N.LST_RECV_DAT,
N.LST_SAL_DAT,
M.ALT_1_UNIT,
M.ALT_1_NUMER,
M.PRC_1,
M.LST_COST
Order by M.ITEM_NO
解决方案
尝试Month(S.BUS_DAT)
包括group by
:
SELECT
M.ITEM_NO,
M.DESCR,
N.QTY_ON_HND,
M.PRC_1,
N.LST_COST,
N.LST_RECV_DAT,
M.CATEG_COD,
M.ATTR_COD_1,
M.ITEM_VEND_NO,
M.ALT_1_UNIT,
M.ALT_1_NUMER,
M.LST_COST,
COUNT(S.BUS_DAT) AS BUS_DAYS,
SUM(QTY_SOLD) OVER(PARTITION BY MONTH(S.BUS_DAT)) AS MTD
FROM dbo.IM_INV N
INNER JOIN dbo.IM_ITEM M ON N.ITEM_NO = M.ITEM_NO
INNER JOIN dbo.PS_TKT_HIST_LIN S ON N.ITEM_NO = S.ITEM_NO
GROUP BY M.ITEM_NO,
M.DESCR,
M.ITEM_VEND_NO,
M.CATEG_COD,
M.ATTR_COD_1,
N.QTY_ON_HND,
N.LST_COST,
N.LST_RECV_DAT,
N.LST_SAL_DAT,
M.ALT_1_UNIT,
M.ALT_1_NUMER,
M.PRC_1,
M.LST_COST,
MONTH(S.BUS_DAT)
ORDER BY M.ITEM_NO;
推荐阅读
- virtual - Visual Studio 16.8.4 创建的 IIS 虚拟目录
- java - Cucumber 特征中的递增变量
- haskell - 具有受另一个类型变量约束的类型变量的 Rank-2 多态性
- javascript - 通过单击发送相应组件的 id
- google-chrome - devdocs.io 窃取 alt+d 快捷方式
- python - 发布以增加相关表 Django
- android - Android Studio:无法检测 adb 版本,退出值:0xc0000139
- c# - ChromeDriver 伪造的网络摄像头无法使用提供的文件
- python - 在 azure app 服务中部署时 librosa 中的 OSError('sndfile library not found')
- ruby-on-rails - 运行 rvm install ruby-2.2 时,make.log 发布 make.log 的尾部出错