小编Jam*_*ich的帖子

仅使用VBA将新记录插入SQL表

我有一个带有以下代码的Excel工作簿 -

Sub Button1_Click()
    Dim conn As New ADODB.Connection
    Dim iRowNo As Integer
    Dim sFirstName, sLastName As String

    With Sheets("Sheet1")

        'Open a connection to SQL Server
        conn.Open "Provider=SQLOLEDB;" & _
            "Data Source=server1;" & _
            "Initial Catalog=table1;" & _
            "User ID=user1; Password=pass1"

        'Skip the header row
        iRowNo = 2

        'Loop until empty cell in CustomerId
        Do Until .Cells(iRowNo, 1) = ""
            sFirstName = .Cells(iRowNo, 1)
            sLastName = .Cells(iRowNo, 2)

            'Generate and execute sql statement
            ' to import the excel rows to …
Run Code Online (Sandbox Code Playgroud)

sql-server excel vba ssms excel-vba

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

SQL Server DATEDIFF 行间计算列

我目前有一张与此类似的表 -

RecordTime                    Running     Fault
-----------------------------------------------
2016-09-15 11:32:01.00        0           202
2016-09-15 11:32:08.00        1           202
2016-09-15 11:39:31.00        0           21
2016-09-15 11:40:07.00        1           4
2016-09-15 11:42:11.00        0           21
2016-09-15 11:42:39.00        1           45
Run Code Online (Sandbox Code Playgroud)

然后我想计算每条记录的 RecordTimes 之间的时间差。为此,我使用以下 -

WITH    rows AS
        (
        SELECT  *, ROW_NUMBER() OVER (ORDER BY RecordTime) AS rn
        FROM    dbo.Table1
        )
SELECT  DATEDIFF(second, mc.RecordTime, mp.RecordTime)
FROM    rows mc
JOIN    rows mp
ON      mc.rn = mp.rn - 1
Run Code Online (Sandbox Code Playgroud)

哪个返回 -

(No column name)
----------------
7
443
36
124
28
303
Run Code Online (Sandbox Code Playgroud)

不过,我真正想做的是在原始表中创建一个计算列,为我提供这些值。这可能吗?

我认为我可能能够将查询转换为 …

sql t-sql sql-server sql-server-2012

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

标签 统计

sql-server ×2

excel ×1

excel-vba ×1

sql ×1

sql-server-2012 ×1

ssms ×1

t-sql ×1

vba ×1