小编Joh*_*tti的帖子

SQL Server日期格式yyyymmdd

我有一个varchar列,其中一些值是mm/dd/yyyy格式的,一些是在yyyymmdd.

我想将所有mm/dd/yyyy日期转换为yyyymmdd格式.做这个的最好方式是什么?谢谢

表是Employees和列是DOB

database sql-server datetime varchar date

10
推荐指数
3
解决办法
8万
查看次数

如何使用SQL创建数据累积报告?

我有这个表DDL:

CREATE TABLE [dbo].[Audit] (
    [AuditId] INT              IDENTITY (1, 1) NOT NULL,
    [Entity]  INT              NOT NULL,
    [Action]  INT              NOT NULL,
    [Id]      UNIQUEIDENTIFIER NULL,
    CONSTRAINT [PK_Audit] PRIMARY KEY CLUSTERED ([AuditId] ASC)
);
Run Code Online (Sandbox Code Playgroud)

更新 - 我在这里添加了缺少的SQL.对于那个很抱歉

我所做的是使用这个SQL创建一个SQL报告,它会告诉我每天有多少活动:

select [col1] = CONVERT(VARCHAR(10), DATEADD(HOUR, 8, a.date), 101) ,
       [Col2] = convert(varchar, count(*))
from Audit a
group by CONVERT(VARCHAR(10), DATEADD(HOUR, 8, a.date), 101)
order by CONVERT(VARCHAR(10), DATEADD(HOUR, 8, a.date), 101) desc
Run Code Online (Sandbox Code Playgroud)

输出如下所示:

col1        Col2
03/05/2017  1
03/04/2017  20
03/03/2017  10
03/02/2017  5
03/01/2017  10
Run Code Online (Sandbox Code Playgroud)

我现在需要做的是创建一个SQL选择,它显示累积值而不是计数.所以我需要SQL来创建一个能够显示这一点的报告 …

sql sql-server

6
推荐指数
1
解决办法
415
查看次数

用于递归和排序的SQL Server CTE

我在SQL Server(2012)中有以下表:

MyTable:

Id      __ParentId      Priority
1       NULL            NULL    
2       1               100     
3       1               300     
4       1               200     
5       4               100     
6       4               200     
7       6               100     
8       5               100     
9       5               200     
10      9               100     
11      5               50      
Run Code Online (Sandbox Code Playgroud)

__ParentId列引用标识知道任何一行的父,它可以深入到递归的许多级别(例如,标识8是一个孩子的5是一个孩子的4这是一个孩子1).

此外,还有一个优先级列,显示子项应出现在父项中的顺序(获取优先级的最低数字).

所以,我想得到的决赛桌是:

Id      __ParentId  Priority    Order   
1       NULL        NULL        1       
2       1           100         2       
4       1           200         3       
5       4           100         4       
11      5           50 …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server recursion common-table-expression sql-server-2012

6
推荐指数
2
解决办法
520
查看次数

如何通过一列选择不同的?

我有一个包含下面列的表,如果COD重复,我需要获取值,在VALUE列上获取非NULL.如果不重复,则可以获得NULL VALUE.像例子一样:

我正在使用SQL SERVER.

这就是我得到的:

COD ID  VALUE
28  1   NULL
28  2   Supermarket
29  1   NULL
29  2   School
29  3   NULL
30  1   NULL
Run Code Online (Sandbox Code Playgroud)

这就是我要的:

COD ID  VALUE
28  2   Supermarket
29  2   School
30  1   NULL
Run Code Online (Sandbox Code Playgroud)

我正在尝试做什么:

;with A as (    
(select DISTINCT COD,ID,VALUE from CodId where ID = 2)  
UNION   
(select DISTINCT COD,ID,NULL from CodId where ID != 2) 
)select * from A order by COD
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server null distinct

6
推荐指数
2
解决办法
3398
查看次数

SSMS 2012:将DATETIME转换为Excel序列号

我似乎无法在任何地方找到答案---我想将SQL中的日期时间转换为excel序列号.

我基本上是从excel中寻找DATEVALUE函数,但是在SQL中使用

关于如何做到这一点的任何想法?谢谢

sql t-sql sql-server date-manipulation sql-server-2012

5
推荐指数
1
解决办法
3670
查看次数

SQL Server:加权平均值+ GROUP BY

我试图计算SQL Server中的加权平均值.我知道有很多问题可以解决这个问题,但我还有一个额外的问题,我用GROUP BY和sum()和avg()等聚合函数查询了很多其他列.

这是我的查询:

SELECT 
    AVG(tauftr.kalkek) AS 'PurchPrice',
    SUM(tauftr.amount) AS 'Amount',
    AVG(tauftr.price) AS 'SellingPrice',
    tauftr.product AS 'Product',
    auftrkopf.ins_usr AS 'Seller',
    DATEPART(wk, auftrkopf.date) AS 'Week',
    AVG([margin]) AS 'Margin' /* <--- THIS IS WRONG  */ 
    /* CALCULATE HERE: WEIGHTED AVERAGE BETWEEN 'amount' and 'margin' */
FROM 
    [tauftr] AS tauftr
JOIN
    tauftrkopf AS auftrkopf ON tauftr.linktauftrkopf = auftrkopf.kopfnr
WHERE
    auftrkopf.[status] = 'L'
    AND auftrkopf.typ = 'B'
    AND auftrkopf.date >= '01.03.2017'
    AND auftrkopf.ins_usr ='HS'
GROUP BY
    tauftr.product, auftrkopf.ins_usr, …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

4
推荐指数
1
解决办法
4109
查看次数

从位掩码确定星期几

我正在使用第三方应用程序,并尝试根据数据提取有关班次信息的有意义信息.

shift_pattern_start_dt     pattern
2014-05-27                 1111000
2015-10-25                 1110011
Run Code Online (Sandbox Code Playgroud)

2014-05-27Tuesday模式的起始位置Tuesday.所以,我想要的结果显示Tuesday,Wednesday,Thursday,和Friday.

2015-10-25Sunday这种模式的起始位置Sunday.结果应该是Sunday,Monday,Tuesday,Friday,和Saturday.

有任何想法或建议来确定正确的工作日吗?

sql t-sql sql-server datetime bitmask

4
推荐指数
1
解决办法
645
查看次数

将XML插入SQL Server表

鉴于此XML:

<Documents>
    <Batch BatchID = "1" BatchName = "Fred Flintstone">
        <DocCollection>
            <Document DocumentID = "269" KeyData = "" />
            <Document DocumentID = "6"   KeyData = "" />
            <Document DocumentID = "299" KeyData = ""     ImageFile="Test.TIF" />
        </DocCollection>    
    </Batch>    
    <Batch BatchID = "2" BatchName = "Barney Rubble">
        <DocCollection>
            <Document DocumentID = "269" KeyData = "" />
            <Document DocumentID = "6"   KeyData = "" />
        </DocCollection>
    </Batch>
</Documents>
Run Code Online (Sandbox Code Playgroud)

我需要以这种格式将它插入SQL Server中的表:

BatchID   BatchName           DocumentID
1         Fred Flintstone     269
1         Fred Flintstone     6
1 …
Run Code Online (Sandbox Code Playgroud)

xml sql t-sql sql-server

4
推荐指数
1
解决办法
495
查看次数

Excel HTTP获取超时

我们有这个小子,只是将数据泵入远程服务器.一切都按预期工作.

前几天,网络服务器上发生了一个持续了大约一个小时的事件.我仍然可以PING服务器,但IIS没有响应.结果,宏只是等待响应.

有关快速通过/失败测试或超时的任何想法?

Sub WebLog(getUser As String, getEvent As String, getValue As String)
    Dim URL As String
    URL = "http://myurl.com/dp.aspx?Task=Log&v1=" + getUser + "&v2=" + getEvent + "&v3=" + getValue
    Dim xml As Object
    Set xml = CreateObject("MSXML2.XMLHTTP")
    xml.Open "GET", URL, False
    xml.Send
End Sub
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

4
推荐指数
1
解决办法
1116
查看次数

计算重叠时间范围内的分钟总和

我需要计算学期的总和。重叠术语不应计数多次。

Declare @Terms table (Start DATETIME, Finish DATETIME)
INSERT INTO @Terms values
    ('2016-8-3 08:00','2016-8-3 09:00'),
    ('2016-8-3 09:00','2016-8-3 10:00'),
    ('2016-8-3 08:00','2016-8-3 09:30'),   -- overlapping term
    ('2016-8-3 11:00','2016-8-3 12:00')
Run Code Online (Sandbox Code Playgroud)

以上数据的结果应为180分钟(3小时)。最简单,最快的方法是什么?

sql t-sql sql-server

3
推荐指数
1
解决办法
645
查看次数