嗨,我们的呼叫记录系统使用了一些SQL,我想看看有多少个电话违反了4小时的SLQ响应时间。
我的问题是,在第33行,我使用MIN并得到一个错误,因为我也使用COUNT。
(Msg 4109、15级、State 1、第33行窗口函数不能在另一个窗口函数或聚合的上下文中使用。)
有什么更好的方法来对它进行编码或者如何绕过它
SELECT Count(CASE
WHEN dbo.assignment.enddate IS NOT NULL
AND dbo.assignment.enddate < ( CASE
所以我不太清楚为什么今天早上这件事给我带来这么多麻烦。我要把它归结为星期五的早晨。*目标是按频率计算在此期间拥有零张照片、三张照片和六张或更多照片的房地产数量。我需要一个类似于这样的结果集(注意:“三列或更多列不应该包含确切的六列-最多可以有六张照片):
Period Start Period End Zero ThreeOrMore ExactlySix
------------------------------------------------------------------------
1/1/2011 1/7/2011
如何在sqlserver中的简单select语句中获取最后6个月的月名、月号和年数。月号为6,并且是固定的
12 Dec 2015
11 Nov 2015
10 Oct 2015
9 Sep 2015
8 Aug 2015
7 Jul 2015
6 Jun 2015
这应该可以处理年终界限。
比如说,如果这个月是2016年2月,结果应该是2015年。
2 Feb 2016
1 Jan 2016
12 Dec 2015
11 Nov 2015
10 Oct 2015
9 Sep 2015
8 Aug 2015
我有一个每季度运行一次的报告(在SQL Server Management Studio 2011中),该报告从按年和按季度组织的表中提取数据。我通常在每次运行查询时手动更新它,但我想尝试让它尽可能地自动化,以供未来的用户使用。
下面是我当前用来选择所需日期范围的代码:
WHERE
(CASE
WHEN AN.[Year] = 2016 AND AN.[Quarter] IN (1,2) THEN 1
WHEN AN.[Year] = 2015 AND AN.[Quarter] IN (3,4) THEN 1
ELSE 0 END) =
这是一个我已经尝试了很长时间的问题。这很难,所以请原谅我的长文。
我有一个MS SQL Server数据库,其中有一个表与世界各地的名称相对应。还有另一个表,其中包含驻留在每个区域的数据中心。在另一个表中,列出了在每个数据中心中运行的环境(DEV、PROD等)。在另一个示例中,列出了在每个环境中运行的虚拟机“类型”。最后,在另一个表中,我列出了处于部署“批准”阶段的虚拟机列表。
vm“类型”的一些例子可以包括像“小”、“中”和“大”这样的标签。
我想创建一个select语句,它返回具有该关系系列中所有可能组合的行,而不管给定的虚拟机类型是否实际存在于数据中。
For even :从去年到明年的
我正在寻找一种更好的方式来写这个案例陈述。场景是这样的
Weekly DateFrom是星期一,DateTo是周日每月-整月-全年
但是,如果存在限制周、月和年日期范围的覆盖日期,则应考虑这些日期范围。下面的代码行得通,但看起来很糟糕
SELECT @dateMax =
CASE @dateFrequency
WHEN 'Daily' THEN @dateMax
WHEN 'Weekly' THEN
CASE WHEN @OverrideDateMax <
我想要编写一个select,它以任何理论上可能的时间间隔(如1小时、1小时和22秒、1年和3分钟等)对数据(其ID为DATETIME列)进行聚合。
此select应能够以1小时12分14秒的时间进行聚合,并应返回3行
SELECT DATEPART(YEAR,id) as year,
DATEPART(MONTH,id) as month,
DATEPART(DAY,id) as day,
DATEPART(HOUR,id) as hour,
DATEPART(MINUTE,id) as minute,
AVG
我有以下代码:
Declare @indDate date = '1/1/2014'
SELECT RecordID AS RID,
Name,
Company,
PhoneNumber,
CONVERT(VARCHAR(10),DateOfInduction,103) AS StartDate,
CONVERT(VARCHAR(10),DateOfExpiry,103) AS DateOfExpiry
FROM Records WHERE
--My Age format will be like '056Yrs03Mths13Days/Male'
DECLARE @INPUT VARCHAR(250),@DATE_OF_BIRTH DATETIME,
@YEARS BIGINT , @MONTHS BIGINT ,@DAYS BIGINT
set @INPUT='056Yrs03Mths13Days/Male' --My INPUT age format will be like this.
SET @YEARS=CONVERT(BIGINT,SUBSTRING(@AGE_NME,1,
我希望SQL查询自动获取日期,
请注意:新年应该总是从一月的最后一个星期日开始,。
下面的示例需要一个SQL查询;假设当前日期是‘2017-01-01-01’。
SQL应该选择以下日期:
Between '2016-01-31' and '2016-12-31'
(在“年初(一月上星期日)”与“前一星期最后一天(星期六)”之间)
我有一个疑问:
Between
case
When DatePart(w, DateAdd(d, 30, DATEADD(y, - DatePart(y, GetDate()) + 1, GetDate()))
我想在同一行返回特定度量在不同时间范围内的结果。例如“最后30天”、“最后7天”、“最后3天”。在此过程中,我最初使用了UNION函数,并为每个时间范围创建了多个子查询。这样做的缺点是,我收集了三次相同的数字,从而增加了运行时间。
一位同事建议我使用CASE函数来分割时间范围。我最初认为实现它的方法如下:
select tp.Name,
case when pub.Date between DATEADD(day, -31, getdate()) and DATEADD(day, -1, getdate())
then SUM(Impressions) else 0
我正在尝试在特定条件下选择所有列。条件是日期时间必须在昨天下午5:30和今天下午6:00之间。我唯一的问题是如何获得下午5:30的时间?我知道如何获得下午5点,但我如何添加分钟。
下面是我使用的基于此的查询
SELECT *
FROM tbl
WHERE datelog BETWEEN dateadd(hour,17,datediff(day,1,GETDATE()))
AND dateadd(hour,18,datediff(day,0,GETDATE()))
我使用SQL Server计算24小时内的行数。我已经做到了这一点,但是我不知道如何将UTC时间转换为数据库存储的CST。
然后..。
如何将24小时分解为24 x 1小时的块,并计算每个小时行的总和或计数?
是否将UTC时间转换为CST?
查询?
--然后
Select COUNT (*) AS Total
From readmodels.Database
Where
Timestamp >= '2018-01-18' AND
Timestamp <= '2018-01-19'
--然后将计数细分为24 -1小时块
我声明了一些月份和日期,需要帮助获得去年这个月的第一个和最后一个日期。
到目前为止,我有以下几点。
DECLARE @today date Set @today = cast (getdate() as date)
DECLARE @firstdaylastmonth date Set @firstdaylastmonth = DATEADD(month, DATEDIFF(month, 0, @today)-1, 0)
DECLARE @lastdaylastmonth date SET @lastdaylastmonth = DATEADD(s,-1,DATEADD(mm, DATEDIF
为什么在以下SQL语句上出现语法错误:
DECLARE @Count90Day int;
SET @Count90Day = SELECT COUNT(*) FROM Employee WHERE DateAdd(day,30,StartDate) BETWEEN
DATEADD(day,-10,GETDATE()) AND DATEADD(day,10,GETDATE()) AND Active ='Y'
我试图将从Select语句返回的行数分配给变量@Count90Day。
如何在案例陈述中提取年度滚动日期差异?或者,如果有更好的方法能起作用。当NXT的周年日期是后一个月,那么我需要的日期滚动到下一年。我需要看看2022年即将到来的下一个周年纪念日。
例如:
下面是我所使用的代码,它对本年度非常有用。
Declare @prevbiz as Date set @prevbiz = DateAdd(day,Case (Datepart(Weekday,Cast(GetDate() as Date)))
When 2 then -3