小编Shm*_*nix的帖子

如何选择表中不存在的列,并为返回的所有行返回NULL结果

我有一个查询,我正在寻找一个不存在的列,并在结果中填入"NULL".数据将导出到.CSV文件以导入到具有该列的另一个数据库.例如:

我的查询是:

Select col1, col2, col3
from table1
Run Code Online (Sandbox Code Playgroud)

输出是:

col1      col2     col3
 1          5        9
 2          6       10
 3          7       11
 4          8       12
Run Code Online (Sandbox Code Playgroud)

我希望输出为:

col1      col2     col3    col4
 1          5        9     NULL
 2          6       10     NULL
 3          7       11     NULL
 4          8       12     NULL
Run Code Online (Sandbox Code Playgroud)

sql sql-server null select

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

从许多不同数据库报告的最佳实践

嗨我有14个地点,我将开始为14个地点创建报告.我们会使用我们的POS公司软件(客户,礼品卡和预付卡)复制一些信息,但不会复制销售和人工等所有信息.这意味着在运行我的报告时,我需要点击所有14个数据库,使它们成为可读格式...有没有人对此类似的建议或最佳做法?

c# sql vb.net

2
推荐指数
1
解决办法
241
查看次数

如何在数据集DataTable中显示DataColumns

我有一个查询,我将数据集作为数据表放入.查询运行很好,但是在数据表中它没有列出数据列中的任何内容,因为我无法报告它...任何想法为什么这不起作用?我的查询如下.

SELECT * FROM (
    SELECT timeclock.dtTimeIn, timeclock.dtTimeOut, employees.sfirstname,
       RANK() OVER ( ORDER BY dtTimeIn) rk1, --earliest record gets 1
       RANK() OVER (ORDER BY dtTimeOut DESC) rk2 --latest record gets 1

    FROM   TimeClock INNER JOIN
                         Employees ON TimeClock.lEmployeeID = Employees.lEmployeeID
    WHERE (dtTimeIn > dateadd(day, datediff(day, 0, getdate())-1, 0)) AND (dtTimeOut < dateadd(day, datediff(day, 0, getdate()), 0)) AND 
      (sDept IN ('1', '2', '3'))
) A
WHERE rk2=1 
Run Code Online (Sandbox Code Playgroud)

运行查询时的当前输出:

  dtTimeIn                    dtTimeOut       sfirstname    rk1      rk2
2/7/2013 2:36:00 PM 2/7/2013 7:52:33 PM        Brian        10 …
Run Code Online (Sandbox Code Playgroud)

c# sql vb.net sql-server sql-server-2005

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

将nvarchar值转换为数据类型int时转换失败

我有一个查询,我正在尝试检查scode列中的一系列代码.问题是scode列包含一些nvarchar字符,并在找到它们时出错.

如何在不返回错误的情况下运行以下查询.

SELECT dtExpires, dtFirst
FROM Customers
WHERE (scode BETWEEN 10 AND 100) OR
      (scode BETWEEN 500 AND 600)
Run Code Online (Sandbox Code Playgroud)

我收到的错误:

将nvarchar值转换为数据类型int时转换失败

sql sql-server sql-server-2005

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

合并多个查询,不同的where子句

我有2个查询,我想合并为一个。基本上,我希望将2个查询放在一个输出表中...输出看起来像这样……

 
商店GC已售汽车总数

1 22 75

2 24 88

3 15 89

问题是我不知道如何在同一张表中得到它。

这是我的疑问...

SELECT        Store_Number, COUNT_BIG(Quantity_Sold) AS GC Sold
FROM            Invoice_Detail_Tb
WHERE        (Invoice_Date BETWEEN CONVERT(DATETIME, @startdate, 102) AND CONVERT(DATETIME, @enddate, 102)) AND (JLI_Category_Code = 'gc') 
                         AND (Invoice_Detail_Code LIKE 'jlgc%') AND (Invoice_Detail_Type = 'Item')
GROUP BY Store_Number
Run Code Online (Sandbox Code Playgroud)

输出为:

商店编号GC已售

1 12

2 13

3 14
SELECT   Store_Number,
         SUM(Vehicle_Count) AS [Total_Cars]
FROM     Daily_Sales_Tb
WHERE    (Operations_Day BETWEEN CONVERT (DATETIME, @startdate, 102) AND CONVERT (DATETIME, @enddate, 102))
GROUP BY Store_Number;
Run Code Online (Sandbox Code Playgroud)

输出:

门店总数汽车

1 7 …

sql

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

SQL查询TimeOut

我有一个vb.net程序,它运行存储的函数并填充数据集.但是,由于提取的信息量很大,有时它会在某些数据库上超时.

如何增加查询的超时时间以免被超时命中?

在我的表单按钮我有以下代码不工作(它仍然超时和程序错误)

Me.1TableAdapter.Connection.ConnectionString = "Data Source=10.0.1.1;Initial Catalog=Database;Persist Security Info=True;User ID=USER;Password=PASSWORD; Connection Timeout = 120"

Me.1TableAdapter.Fill(Me.Dataset.1, TodayDt, TodayEnd)

Me.2TableAdapter.Fill(Me.Dataset.1, TodayDt, TodayEnd)
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

System.Data.SQLClient.SQLException:超时已过期.piror到操作完成或服务器没有响应的超时时间已过.

c# sql vb.net sql-server-2005

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

如何用"0"显示结果

我有一个查询,我正在运行从数据库拉数小时.我使用的是2个表Employee_TBPayroll_Hours_TB.查询正在运行,但是它没有显示"0"小时的活跃员工.我希望查询显示那些活跃Employee_Tb.Active_Flag = 1了几小时的员工,以及0小时的日期范围.

SELECT
   REPLACE(REPLACE(Employee_Tb.First_Name, '.', ''), ' ', '') AS FirstName,
   REPLACE(REPLACE(Employee_Tb.Last_Name, '.', ''), ' ', '') AS LastName,
   Employee_Tb.Home_Store_Id, Employee_Tb.Payroll_Id,
   SUM(Payroll_Hours_Tb.Hours_Worked) AS RegHours
FROM Employee_Tb
LEFT OUTER JOIN Payroll_Hours_Tb ON Employee_Tb.Employee_Id = Payroll_Hours_Tb.Employee_Id
WHERE (Payroll_Hours_Tb.Work_Date BETWEEN @startdate AND @enddate)
AND (Employee_Tb.Active_Flag = 1)
GROUP BY Employee_Tb.Payroll_Id, Employee_Tb.First_Name, Employee_Tb.Last_Name, Employee_Tb.Home_Store_Id
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

如何将0的计数显示为NULL

我正在制作一个程序来检查数据库中15个信用卡读卡器的交易.该计划的目的是检查读者在预定日期范围内的销售情况,以确保我们没有机械问题.一般来说,如果读者没有在预定日期范围内记录销售,则应检查读者的操作.问题是,因为我"计算"交易数量,它会出现"0"而不是NULL,我只想收到一封电子邮件,如果没有任何交易......我该如何更改如果是这样,从"0"计数到NULL?我的查询如下:

SELECT        COUNT(sTerminal) AS Terminal
FROM            CC
WHERE        (dtCreated BETWEEN @startdate AND @enddate) AND (sTerminal = 'Swiper 1')
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2005

0
推荐指数
1
解决办法
141
查看次数

如何查找结果之间的天数

我有一个票务详细信息表,用于存储交易信息.以下是表数据的示例:

Ticket_Number  Detail_type_ID   Description  Date_Created   TotalAmount   Barcode 
   1                 11         Card Sale      1/1/16           5           123
   1                 1          Book           1/1/16           5            
   1                 11         Card Red       1/1/16          -5           123 
   2                 1          book           1/5/16           5
   3                 1          book           1/6/16           5
   3                 11         Card Red       1/6/16          -5           123
   4                 11         Card Sale      1/7/16           5           124
   5                 1          Book           1/7/16           5
   5                 11         Card Red       1/7/16          -5           124
   6                 11         Card Sale      1/8/16           5           123
   6                 1          Book           1/8/16           5
   6                 11         Card Red       1/8/16          -5 …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2008 sql-server-2008-r2

0
推荐指数
1
解决办法
203
查看次数

如何在SQL中使用Count返回0而不是没有行

I have a query:

SELECT     Store_Number, COALESCE (COUNT(Invoice_Number), 0) AS abc
FROM        Invoice_Detail_Tb
WHERE     (Invoice_Date BETWEEN @start AND @end) AND (Invoice_Detail_Code IN ('abc'))
GROUP BY Store_Number
Run Code Online (Sandbox Code Playgroud)

它正在回归:

Store Number       ABC
1                  1
3                  23
4                  24
5                  7
Run Code Online (Sandbox Code Playgroud)

我希望它能回归:

Store Number       ABC
1                  1
2                  0
3                  23
4                  24
5                  7
Run Code Online (Sandbox Code Playgroud)

我假设是因为我的"Group By".我怎么能做到这一点?

sql sql-server sql-server-2008

-1
推荐指数
1
解决办法
39
查看次数

如何仅在ID列显示3次的查询中显示结果

我有一个查询,显示来自客户的交易.我想做的是,只显示在一段时间内出现3次的结果.

例如:

如果我做: Select * from Table where dtcreated between @startdate and @enddate and result = 'Declined'

lcustomerid      dtcreated      result
   1               8/1/15        Declined
   1               8/2/15        Declined
   1               8/3/15        Declined
   2               8/1/15        Declined
   2               8/2/15        Declined
   2               8/3/15        Declined
   3               8/1/15        Declined
   3               8/3/15        Declined
   4               8/1/15        Declined
Run Code Online (Sandbox Code Playgroud)

我想做的只是显示已经下降3次的那些.所以上面我只想看ID 1和2.

所以我正在寻找的结果是:

Select lcustomerid where dtcreated between @startdate and @enddate and result = 'Declined'

lcustomerid      
   1               
   2  
Run Code Online (Sandbox Code Playgroud)

sql sql-server

-2
推荐指数
1
解决办法
39
查看次数

如何从datetime列中删除时间

我有一个查询,我正在运行,我只想在比较两列时考虑日期,而不是时间.我目前有:

SELECT dtvisit1, dtvisit2
  FROM dbo.Visit
  WHERE dtvisit1 = dtvisit2;
Run Code Online (Sandbox Code Playgroud)

显然,这只会显示每次访问在同一天的相同时间的行.我只是想知道两列是否在同一天有条目.

sql sql-server sql-server-2005

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

如何将参数传递给SqlDataAdapter

我有一个 Vb.net 程序,它查询数据库以获取一堆记录。我不太清楚如何传递参数。下面是我的代码:

Dim connectionString As String
    Dim sqlCnn As SqlConnection
    Dim sqlCmd As SqlCommand
    Dim sql As String

    Private Function GetCustomerData() As DataTable
        locationdb = "10.0.1.1"

        connectionString = ("Data Source=" & locationdb & ";Initial     Catalog=TestDB;Persist Security Info=True;User ID=user;Password=password")
        sql = ("SELECT lCustomerID,CustomerName,address FROM customers where @active = True...ETC")
        sqlCnn = New SqlConnection(connectionString)
        Dim CategoryAdapter As New SqlDataAdapter(sql, sqlCnn)
        Dim CustomerInfo As New DataSet()
        sqlCmd.Parameters.AddWithValue("@StartDate", frmMain.Startdate)
        sqlCmd.Parameters.AddWithValue("@EndDate", frmMain.Enddate)
        sqlCmd.Parameters.AddWithValue("@Department", "ALL")
        sqlCmd.Parameters.AddWithValue("@Active", "1")
        sqlCmd.Parameters.AddWithValue("@Visits", "ALL")
        CategoryAdapter.Fill(CustomerInfo, "Customers")
        Return CustomerInfo.Tables(0)
    End Function …
Run Code Online (Sandbox Code Playgroud)

sql vb.net sqlconnection sqldataadapter

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