Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >T-SQL使用CTE初始化视图内的变量

T-SQL使用CTE初始化视图内的变量
EN

Stack Overflow用户
提问于 2012-07-27 08:37:01
回答 1查看 3.6K关注 0票数 5

我需要创建一个视图-它由五个UNION ALL语句组成。每条语句的不同之处在于,数据是按不同的周期过滤的:

例如:

代码语言:javascript
运行
AI代码解释
复制
SELECT  RecordName
       ,CASE
        WHEN RecordDate > DATEADD(WEEK,-1,GETUTCDATE()) THEN 'This week'
        END
UNION ALL
SELECT  RecordName
       ,CASE
        WHEN RecordDate > DATEADD(WEEK,-2,GETUTCDATE()) THEN 'Previos week'
        END
SELECT  RecordName
       ,CASE
        WHEN RecordDate > DATEADD(Year,-1,GETUTCDATE()) THEN 'Year ago'
        END

然后,我使用视图创建了一个轴心。

无论如何,“日期”条件是以更复杂的方式计算的。我也在使用GETUTCDATE()函数,这将在任何毫秒内返回不同的值。

这就是为什么我要使用CTE表达式来初始化所有日期条件变量,或者只在CTE中执行一次计算,然后在SELECT-UNION子句中使用此日期条件。

问题是,我无法使用下面的SELECT语句连接来自CTE的信息,并且当我尝试直接使用日期条件(没有连接)时,它不起作用(“错误-无效的列名”)。

这是我正在尝试做的一个例子:

代码语言:javascript
运行
AI代码解释
复制
WITH DatePeriods(ThisWeek,LastWeek,MonthToDate,QuarterToDate,YearToDate) AS
(
    SELECT  DATEADD(WEEK,-1,GETUTCDATE())  AS ThisWeek
           ,...                            AS LastWeek
           ,...                            AS MonthToDate
           ,...                            AS QuarterToDate
           ,DATEADD(YEAR,-1,GETUTCDATE())  AS YearToDate
)

SELECT  RecordName
       ,CASE
        WHEN RecordDate > ThisWeek THEN 'This week'
        END
UNION ALL
SELECT  RecordName
       ,CASE
        WHEN RecordDate > LastWeek THEN 'Previos week'
        END
SELECT  RecordName
       ,CASE
        WHEN RecordDate >YearToDate THEN 'Year ago'
        END
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-27 09:12:15

您必须在每个查询的from子句中使用CTE。您可以使用cross apply来完成此操作。

代码语言:javascript
运行
AI代码解释
复制
WITH DatePeriods(ThisWeek,LastWeek,MonthToDate,QuarterToDate,YearToDate) AS
(
    SELECT  DATEADD(WEEK,-1,GETUTCDATE())  AS ThisWeek
           ,...                            AS LastWeek
           ,...                            AS MonthToDate
           ,...                            AS QuarterToDate
           ,DATEADD(YEAR,-1,GETUTCDATE())  AS YearToDate
)

SELECT  RecordName
       ,CASE
        WHEN RecordDate > ThisWeek THEN 'This week'
        END
FROM YourTable 
  CROSS APPLY DatePeriods 
UNION ALL
SELECT  RecordName
       ,CASE
        WHEN RecordDate > LastWeek THEN 'Previos week'
        END
FROM YourTable 
  CROSS APPLY DatePeriods 
SELECT  RecordName
       ,CASE
        WHEN RecordDate >YearToDate THEN 'Year ago'
        END
FROM YourTable 
  CROSS APPLY DatePeriods 
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11684279

复制
相关文章
如何让 PowerBI Y 轴完美显示
在 PowerBI 原生可视化方面,一直有个小 BUG 的存在,那就是 Y 轴不能正常良好显示,如下:
BI佐罗
2021/10/12
4.2K0
origin如何绘制双y轴柱状图_Graphpad柱状图双Y轴
tips:origin横坐标的标注如何修改成双行显示呢? shift+enter,可以换行
全栈程序员站长
2022/11/11
3.3K0
origin如何绘制双y轴柱状图_Graphpad柱状图双Y轴
python双Y轴
import matplotlib.pyplot as plt import numpy as np x = np.arange(0., np.e, 0.01) y1 = np.exp(-x) y2 = np.log(x) fig = plt.figure() sns.set_style('white') ax1 = fig.add_subplot(111) ax1.plot(x, y1) ax1.set_ylabel('Y values for exp(-x)') ax1.set_title("Dou
用户1359560
2018/08/27
1.3K0
python双Y轴
echart 双折线 双Y轴, 折线,柱形 双Y轴图
双折线图 双Y轴 双坐标系坐标 option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: [ {name: '数值',type: 'value', interval: 300, position:'left'}, {type: 'value', pos
拿我格子衫来
2022/01/24
2K0
echart 双折线 双Y轴, 折线,柱形 双Y轴图
echarts的双y轴显示
第一步: 引入echarts import echarts from "echarts"; Vue.prototype.$echarts = echarts //引入组件(全局引入) 第二步: id绑定 <div id="pie"> /// pie 用于存放所要绘制的图形 第三步: 配置options,创建echarts实例 option1: { title: { text: "双坐标轴事例", //标题 show: f
用户4344670
2019/08/28
4.9K0
echarts实现多个y轴
在日常画图,如柱形图、折线图这些图表,需要两组或者两组以上不同的数据,且数据的大小有一定的差异时,通常是需要用两个y轴来体现的。
算法与编程之美
2022/02/17
1.9K0
如何随意截断ggplot2图像的y轴?
面对的疑问,站长最开始并没有想到去开发一个R包解决。 ggplot2以及依赖它开发的包已经丰富,原以为在网络搜索一下肯定有解决方案,但谁曾想这样的需求真的没有找到完美的解决方案。 为了完善这个看起来很平常的功能,站长决定亲自操刀去写个包。
Chris生命科学小站
2023/02/28
1.8K0
如何随意截断ggplot2图像的y轴?
Echarts多Y轴探索
ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。
孟君
2019/09/24
4.9K0
Echarts多Y轴探索
R画图y轴范围太大时,如何局部压缩坐标轴?
用 R 画图的时候,如果 y 轴存在个别非常大或非常小的值,或者当中的数值存在非常大差异的时候,画出的图很容易产生误导效果,使人忽略当中某一部分信息。
实验盒
2021/09/22
4K1
R画图y轴范围太大时,如何局部压缩坐标轴?
【R语言】如何绘制截断Y轴的柱形图
在绘制柱形图的时候, 我们经常会遇到Y轴部分数据范围很广的情况。有些数值很大,但是有些有非常小,不在一个尺度范围内。如果直接使用最大值作为y轴的范围,那么那些数值很小的柱子就会显得很矮,画出来的图会很难看。遇到这种情况我们该如何处理呢?今天就给大家分享一下截断Y轴的柱形图。
生信交流平台
2022/09/21
2.3K0
【R语言】如何绘制截断Y轴的柱形图
Echarts设置y轴值间隔
需求:如图,y轴之间的距离太小,这样就太过于拥挤了,现在要修改echarts里面的属性,设置y轴值间隔让图表看上去舒服一些。
王小婷
2019/03/22
9.2K0
Echarts设置y轴值间隔
如何用R绘制双y轴柱状图
绘制上面这个漂亮的图,要注释以下3点: 1. 双y轴 2. 颜色渐变 3. 横坐标的label对齐 代码及解释如下: library(RColorBrewer) # 载入颜色包 par(mar=c(5
生信交流平台
2020/08/05
2.6K0
如何用R绘制双y轴柱状图
Stata | 调整 Y 轴文字顺序
鸽了一个暑假,最近试着渐渐更新起来。今天分享一个被好多强迫症小伙伴问到的问题:用 Stata 画图怎么更改 Y 轴文本的顺序。如下图所示,默认绘图的文字为每个字从左到右,但是一般论文在 Y 轴顶端的由上至下的排列。
PyStaData
2021/09/14
3.4K0
Stata | 调整 Y 轴文字顺序
android之绕Y轴旋转
转自:http://lzyfn123.iteye.com/blog/1426844
forrestlin
2022/04/02
1.1K0
Matlab绘制包含双Y轴的图
创建左右两侧都有 y 轴的坐标区。yyaxis left 命令用于创建坐标区并激活左侧。后续图形函数(例如 plot)的目标为活动侧。绘制数据对左侧 y 轴的图。
用户9925864
2022/07/27
2.2K0
Matlab绘制包含双Y轴的图
1.基础知识(3) --Matlab绘制特殊的图形
自定义沿坐标轴的刻度值和标签有助于突出显示数据的特定方面。以下示例说明一些常见的自定义,例如修改刻度值的放置位置、更改刻度标签的文本和格式,以及旋转刻度标签。
用户9925864
2022/07/27
3.5K0
1.基础知识(3) --Matlab绘制特殊的图形
Dygraph 自定义 y 轴刻度
我们在使用 Dygraph 的时候,假如需要设定固定的 Y 轴的刻度,那需要怎么做呢?
Jimmy_is_jimmy
2023/08/09
2070
Dygraph 自定义 y 轴刻度
origin双y轴柱状图_双Y轴柱状图和折线图
做双Y轴柱状图时,一开始是将左Y轴数据和右Y轴数据放在了两个sheet中,一顿操作最后发现两个柱要么重合要么有间距,怎么调都不行,就像下图这样。。。
全栈程序员站长
2022/11/10
1.9K0
origin双y轴柱状图_双Y轴柱状图和折线图
echarts Y轴数据显示不全问题
坐标轴刻度标签的显示间隔,在类目轴中有效。 默认会采用标签不重叠的策略间隔显示标签,可以设置成 0 强制显示所有标签。
李维亮
2021/07/08
4.1K0
ROOT-画双Y轴图表
字号字体:当图片缩放占用单栏时,宽度约7.8cm,对应图片内字号与文章内字号大致相同,即10号Times New Roman。
梁佐佐
2021/07/20
2.3K5
ROOT-画双Y轴图表

相似问题

d3.js条形图-Y轴标尺

18

ggplot标尺y轴直线

13

Y轴不够长(标尺)

10

如何设置x&y轴的标尺刻度?

20

为什么Python适配器自动重新标尺绘制y轴?

18
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档