sql - SQL Server:从日期减去一年的表中选择*
问题描述
如何选择一年级?
这是我的代码:
select
a.*
from
(select
met_men, kli_kod, pre_kod, galutinis, savik_group, marza,
KLR_KOD, KLI_POZ1, KLI_POZ2, KLI_POZ3, KLG_KOD, PRE_RUS,
PRE_POZ1, PRE_POZ2, PRE_POZ3, PRE_POZ4, PRE_POZ5, PRE_POZ6,
did_dat, savi_suproc, marza_suproc, pre_ska dbo.SVF_View_10) AS a
left outer join
(select
pre_kod, kli_kod, met_men, did_dat
from
dbo.SVF_View_10_sum
where
dateadd(year, -1, 'did_dat')) as b on a.kli_kod = b.kli_kod
and a.pre_kod = b.pre_kod
and a.did_dat = b.did_dat
此错误发生在以下行where DATEADD(year, -1, 'did_dat')) as b
:
消息 4145,级别 15,状态 1,第 6 行
在预期条件的上下文中指定的非布尔类型的表达式,靠近 ')'。
请帮我
所需数据:订单日期、id、数量、orderdate-1年、数量。有必要比较今年和去年的销售量
解决方案
您在单引号 dateadd(year, -1, 'did_dat') 中给出列名,这里不需要更改为 dateadd(year, -1, did_dat) 并且当您使用 where 子句时需要在 where 子句中进行比较操作。
所以变成了
where did_dat <= dateadd(year, -1, did_dat)
但这没有任何意义,因为查询应该在上一年针对当前日期执行,例如
where did_dat <= dateadd(year, -1, GETDATE())
推荐阅读
- slack-api - 有错误的松弛螺栓 ack()
- c# - 如何在 Visual Studio 2019 中使用 Xamarin Forms(UWP) 和 C# 创建 Web 应用程序
- javascript - 将复杂的 SVG 文件与 paper.js 结合起来
- node.js - 使用 ffmpeg 和 nodejs (fluent-ffmpeg) 在不重新编码的情况下剪切视频
- react-native - 如何将 simple-peer 与 react-native-webrtc 一起使用
- python - 从 pyspark 数据帧向量列中查找最大值索引的错误
- r - 使用 runif() 和 rbern() 的 R 脚本
- c# - 在 Xamarin 表单中隐藏/显示文本
- javascript - 两个 Material-UI 单选按钮都被选中
- nlp - 规范化 Fasttext 预训练的 Fasttext 词嵌入