我需要一些指导并帮助解决一个问题我不完全确定如何在SQL Server 2012中解决.我认为LAG和LEAD功能可能有用,但我不确定.
这就是我现在的数据:
=========================================
YearMonth LocationCode Active
=========================================
201405 123 0
201406 123 2
201409 211 1
201410 211 0
201411 214 0
201412 214 3
Run Code Online (Sandbox Code Playgroud)
我们有一个YearMonth列显示每个状态的状态,locationCode以及Active表示每个状态的int 的列LocationCode
目的:
我的目标是比较LocationCode当前YearMonth(让我们称之为201406)和前一个Yearmonth(让我们称之为201405)的for :
一个例子 :
=========================================
YearMonth LocationCode Active
=========================================
201405 123 0
201406 123 2
Run Code Online (Sandbox Code Playgroud)
基本上我想弄清楚的是如何将当前月份的行(201406)与上一个月的行(201405)进行比较Active.
如果当前月份的行列Active为非零且前一个月的活动为零,则我们将当前月份的行结束为"新"(1)否则为(0).
下面提供了一个示例:
==================================================
YearMonth LocationCode Active New
===================================================
201405 …Run Code Online (Sandbox Code Playgroud) 我需要一些指导来了解如何排除单元格中包含任何形式字母的行,而单元格中应该只包含整数。
现在的数据是这样的:
CustomerID
----------
ea176680
27906857
62675436
62566247
1bed413e
61110053
61113323
34441416
Run Code Online (Sandbox Code Playgroud)
正如您在表中看到的,第一个 ID 包含字母。如果单元格包含任何形式的字母,如何删除完整的行?
我有以下SAS中使用的代码摘录,并希望在SQL Server中编写它以提取数据.
substr(zipname,1,4) in("2000","9000","3000","1000");run;
Run Code Online (Sandbox Code Playgroud)
我如何在SQL Server中写这个?
我试过并得到了这个错误:
在期望条件的上下文中指定的非布尔类型的表达式
我需要在我的CTE列表之前创建一个#temp表:s,这样我最终可以用它来执行计算.
这是我到目前为止所写的:
SELECT DISTINCT
SUM(X+Y) AS Total
INTO #Summary
FROM Table
WITH CTE_START AS
(
SELECT DISTINCT *
FROM TableX
)
Run Code Online (Sandbox Code Playgroud)
....
我甚至尝试将我的#Summary创建为CTE,然后在FROM之前编写INTO.这是行不通的.
我看过类似的问题:CTE和临时表
我没有找到任何有用的东西.如何在WITH CTE_START开始处理之前创建一个#temp表?