sql - 如何在 SQL 查询中添加年份参数?
问题描述
我正在使用水晶报表创建一个报告来比较两年的销售额。我需要添加年份参数来过滤数据,方法是在 CurrentYear 参数和 PreviousYear 参数中输入年份。我该怎么做?
我尝试了下面的查询,但问题是如何将参数添加到聚合函数?
DECLARE @CompareYear varchar(50),
@CurrentYear varchar(50)
SELECT
ISNULL(sp.Telephone,'No Sales Employee'),
od.CardCode,
od.CardName,
Sum(case when Year(od.DocDate)=@CompareYear then od.DocTotal else 0 end) as Sold2018,
Sum(case when Year(od.DocDate)=@CurrentYear then od.DocTotal else 0 end) as Sold2019
FROM
ORDR od
Left Join OSLP sp
On od.SlpCode=sp.SlpCode
Group By
sp.Telephone,
od.CardCode,
od.CardName
having(Sum(case when Year(od.DocDate)=@CompareYear then od.DocTotal else 0 end) < Sum(case when Year(od.DocDate)=@CurrentYear then od.DocTotal else 0 end))
解决方案
如果我正确地抓住了你的目标,你需要同时添加YEAR(od.DocDate)
onGROUP BY
和SELECT
从句。
推荐阅读
- django - 移植和现有的嵌套集层次结构
- laravel - 如何为 Laravel Lighthouse 中的突变定义多态的一对多关系?
- python - Python Selenium 多线程处理不同的 Chrome 实例
- java - Java UTF-8 格式错误的测试用例是对的吗?
- ios - 更改数组中的值
- java - 在 java 中发送字节时出错:缓冲读取器和输入流
- acumatica - Acumata Web 服务端点添加供应商位置
- sql - 如何在sql中的表中按ID填充缺失的日期
- react-native - 将 Base64 转换为 png 并保存在设备 React Native Expo 中
- java - 在java中返回一个子类类型