小编Jay*_*hav的帖子

如何在SQL Server中更新列的偏移量?

我将表的DateTime字段转换为DateTimeOffset,但现在偏移量自动设置为+00:00.

我需要将此表的所有 DateTimeOffset字段更改为+1:00的偏移量.

如何在更新查询中执行此操作?

sql sql-server datetimeoffset

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

SQL Query显示工单的顺序

首先对不好的主题线抱歉.

编辑:这里的查询重复OrderNumbers我需要查询不重复OrderNumbers编辑:缩短问题,并提供一个更清晰的问题

我有一张表,其中包含已执行的所有工单的记录.有两种类型的订单.安装和故障呼叫.我的查询是查找在安装后30天内发生的所有故障呼叫,并将该故障呼叫(TC)与正确的安装(IN)相匹配.因此,故障呼叫日期必须在安装后发生,但不会超过30天.此外,如果同一帐户有两个安装和两个故障呼叫都在30天内发生,并且它们按顺序发生,结果必须反映出来.我遇到的问题是我得到一个安装订单,匹配两个不同的故障呼叫(TC)和一个与两个不同的安装(IN)匹配的故障呼叫(TC)

在SQL Fiddle的示例中,请密切关注安装订单号1234567810和故障呼叫订单号1234567890,您将看到我遇到的问题. http://sqlfiddle.com/#!3/811df/8

select b.accountnumber,
       MAX(b.scheduleddate) as OriginalDate,
       b.workordernumber as OriginalOrder,
       b.jobtype as OriginalType,
       MIN(a.scheduleddate) as NewDate,
       a.workordernumber as NewOrder,
       a.jobtype as NewType 
from (
      select workordernumber,accountnumber,jobtype,scheduleddate 
      from workorders 
      where jobtype = 'TC'
     ) a join 
     (
       select workordernumber,accountnumber,jobtype,scheduleddate 
       from workorders  
       where jobtype = 'IN'
     ) b
on a.accountnumber = b.accountnumber 
group by b.accountnumber,
         b.scheduleddate,
         b.workordernumber,
         b.jobtype, 
         a.accountnumber,
         a.scheduleddate,
         a.workordernumber,
         a.jobtype
having MIN(a.scheduleddate) > MAX(b.scheduleddate) and 
      DATEDIFF(day,MAX(b.scheduleddate),MIN(a.scheduleddate)) < 31
Run Code Online (Sandbox Code Playgroud)

我正在寻找结果的示例.感谢您在为我指路的过程中提供的任何帮助. 在此输入图像描述

sql sql-server sql-server-2008

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

多行Sql Server使用专用表值参数更新 - 存储过程

使用下面的存储过程,我可以在给定每条记录的Row索引的情况下选择表的变量部分.我试图创建另一个类似于的存储过程MulTselect,只是这次表值参数将有另一列用于MulTUpdate存储过程的新值.

[RowIndex] int, [NewVal] [varchar] (4000) NOT NULL
Run Code Online (Sandbox Code Playgroud)

问题是,给定记录 - Rowindex和"NewValue",是否可以对多个记录进行UPDATE,如下面的选择程序?

--sproc signature

CREATE Proc [dbo].[MulTSELECTViaRowIndexSpTVP] 
@SelectedTableName varchar (50),
@SelectedAction varchar(10),
@TestMulTSELECTViaRowIndexTVPar dbo.TestMulTSELECTViaRowIndexTVType READONLY


SET @CmdStr = 'SELECT * FROM ' + @SelectedTableName + ' 
               WHERE RowIndex in (SELECT RowIndex from @TestMulTSELECTViaRowIndexTVPar);'

EXEC sp_executesql @CmdStr,N' @TestMulTSELECTViaRowIndexTVPar dbo.TestMulTSELECTViaRowIndexTVType READONLY',
         @TestMulTSELECTViaRowIndexTVPar= @TestMulTSELECTViaRowIndexTVPar
Run Code Online (Sandbox Code Playgroud)

c# sql-server stored-procedures table-valued-parameters

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

获取 SQL 中某个字符之前的所有内容

我的数据库中有以下条目:

E01234-1-1
E01234444-1-800000000
Run Code Online (Sandbox Code Playgroud)

我想修剪条目,所以我得到:

E01234-1
E01234444-1
Run Code Online (Sandbox Code Playgroud)

所以基本上,无论长度如何,我都希望在第二个“-”之前的所有内容

我该如何解决?我使用的是 MS SQL SERVER 2012

我正在使用它,但它只带来第一个连字符之前的数据,而不是第二个连字符

DECLARE @TABLE TABLE (STRING VARCHAR(100))

INSERT INTO @TABLE (STRING)
      SELECT 'E01234-1-1' 
UNION ALL SELECT 'E01234-1-200' 
UNION ALL SELECT 'E01234-1-3000' 
UNION ALL SELECT 'E01234-1-40000' 
UNION ALL SELECT 'E01234-1-500000' 
UNION ALL SELECT 'E01234-1-6000000' 
UNION ALL SELECT 'E01234-1-70000000' 
UNION ALL SELECT 'E01234444-1-800000000' 

SELECT LEFT(STRING, CHARINDEX('-',STRING)-1) STRIPPED_STRING from @TABLE
Run Code Online (Sandbox Code Playgroud)

退货 E01234 E01234 E01234 E01234 E01234 E01234 E01234 E01234444

sql t-sql sql-server

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

在yql中将yyyy-mm-dd hh:mm:ss转换为yyyy-mm-dd

我需要在sql中将yyyy-mm-dd hh:mm:ss.msec转换为yyyy-mm-dd.

我试过了

CONVERT(DATETIME,MIN(Vdaily_calender.VDC_day_date),120)
Run Code Online (Sandbox Code Playgroud)

但得到相同的结果.

请指教

谢谢Ar

sql t-sql datetime date converter

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

无法使用c#在Winform中使用空ValueMember在ListControl中设置SelectedValue

我有一个组合框,可从数据库加载数据,但出现一个错误,尽管我已将selectValue设置为表的主键,但无法在ListControl中设置selectedValue。但是仍然在运行时出现错误。这是代码。

    private void FormAddStudent_Load(object sender, EventArgs e)
    {
        //For combobox Campuse
        cBoxCampus.DataSource = GetAllCampuses();

        cBoxCampus.DisplayMember = "campus_name";
        cBoxCampus.SelectedValue = "campus_id";
        //Foe ComboBox Department
        cBoxDepartment.DataSource = GetAllDepartment();

        cBoxDepartment.DisplayMember = "depname"; 
        cBoxDepartment.SelectedValue = "depid";
    }
Run Code Online (Sandbox Code Playgroud)

这是插入按钮背后的代码

        private void btnInsert_Click(object sender, EventArgs e)
    {
        string CS = ConfigurationManager.ConnectionStrings["UMSdbConnectionString"].ConnectionString;
        using (SqlConnection con = new SqlConnection(CS))
        {
            con.Open();
            SqlCommand cmd = new SqlCommand("SELECT ISNULL(MAX(std_id),0)+1 FROM Student", con);
            cmd.CommandType = CommandType.Text;
            tbID.Text = cmd.ExecuteScalar().ToString();

            {

                using (SqlCommand cmd1 = new SqlCommand("INSERT INTO Student (std_id,std_name,std_f_name,std_mob,std_gender,std_cnic,std_campus,std_dep,std_address,std_batch,std_batch_year)VALUES(@std_id,@std_name,@std_f_name,@std_mob,@std_gender,@std_cnic,@std_campus,@std_dep,@std_address,@std_batch,@std_batch_year)VALUES(@campus_id,@campus_name)", con))
                { …
Run Code Online (Sandbox Code Playgroud)

c# winforms

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

必须声明标量变量@Id?

所以我试图从我的数据库中获取"客户",但我得到一个例外

System.Data.dll中出现"System.Data.SqlClient.SqlException"类型的异常,但未在用户代码中处理

附加信息:必须声明标量变量"@Id".

    using Core;
    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace DatabaseAccess
    {
        public class DbCustomer
        {
            private string ConnectionString = ConfigurationManager.ConnectionStrings["local"].ConnectionString;
            private SqlConnection connection { get; set; }

            public DbCustomer()
            {
                connection = new SqlConnection(ConnectionString);
            }

            public Customer GetCustomer(int Id)
            {
                Customer customer = null;
                connection.Open();

                using (SqlCommand command = connection.CreateCommand())
                {
                    command.CommandText = "SELECT * FROM CUSTOMER WHERE Id = @Id;";
                    var reader = command.ExecuteReader();
                    while (reader.Read()) …
Run Code Online (Sandbox Code Playgroud)

c# sql-server

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

CTE和关闭半冒号

我正在尝试编写一个递归CTE,它引用了之前编写的另一个CTE.

第一CTE nodes我已经封闭了与分号写递归前HierarchyCTE:

WITH nodes(node, node_name, parent, parent_name) AS
(
    SELECT      
        Grp.PermissionGroupID as node,
        Grp.GroupName as node_name,
        GrpLink.ParentPermissionGroupID as parent,
        ParentGrp.GroupName as parent_name
    FROM _CCC_Permission_Group Grp
    LEFT JOIN   _CCC_Permission_GroupGroup GrpLink
    on          Grp.PermissionGroupID = GrpLink.ChildPermissionGroupID
    LEFT JOIN   _CCC_Permission_Group ParentGrp
    on          GrpLink.ParentPermissionGroupID = ParentGrp.PermissionGroupID

);

WITH Hierarchy(node, node_name, depth, parent, parent_name)
AS
(
    SELECT      
        node,
        node_name,
        0,
        parent,
        parent_name
    FROM nodes as FirstDepth
    WHERE parent IS NULL

    UNION ALL

    SELECT
        NextDepth.node,
        NextDepth.node_name,
        Parent.depth + 1,
        Parent.parent,
        Parent.parent_name              
    FROM nodes …
Run Code Online (Sandbox Code Playgroud)

sql t-sql common-table-expression

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

SQL Server:如何在存储过程中使用数据库名称作为参数?

我怎样才能做一个连接2个不同的表db在同一domain

SET DBname = "sample"
SELECT *
FROM Table1
INNER JOIN DBname.Table2 T On Table1.key = T.Key 
Run Code Online (Sandbox Code Playgroud)

它的报告就像

无效的列名 T

任何帮助,将不胜感激

sql sql-server

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

SQL SUM提供2行.我想要一排

我很难获得此查询以返回1行中的总和.

SELECTst.[code], SUM(whst.WHQtyOnHand)
FROM dbo.[StkItem] st, dbo.WhseStk whst
WHERE whst.WHWhseID in (3, 4) 
    AND whst.WHStockLink = st.StockLink 
    AND st.Code = 'BNV203N'
GROUP BY st.[Code], whst.WHWhseID, whst.WHStockLink
Run Code Online (Sandbox Code Playgroud)

这是我得到的结果:

Code        WHQtyOnHand
---------------------------
BNV203N        694
BNV203N       3748
Run Code Online (Sandbox Code Playgroud)

我总需要它们.

sql sql-server

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

操作数数据类型varchar对除运算符无效

我刚开始使用SQL,我有一个非常基本的问题:

我尝试划分2列(金额/费率) - 我将它们从'money'转换为'INT'但是当我尝试执行时它给了我这个错误:

操作数数据类型varchar对除运算符无效.

这是我输入的查询:

select referenceid, 
       CONVERT(decimal(15,3), sellamount) as 'amount', 
       convert(decimal(15,3), rateactual) as 'Rate',
       convert(decimal(15,3),'amount' / 'rate') as 'local amount'
FROM currencyfxconversions
Run Code Online (Sandbox Code Playgroud)

有人能帮我理解我做错了吗?

sql sql-server

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

需要一个通用查询来使用“EXISTS”关键字检查行是否存在

以下查询适用于 PostgreSQL 和 MS SQL,但不适用于 MYSQL

SELECT 1 as retVal WHERE EXISTS (SELECT 1 FROM posts WHERE topic = 'Sports')
Run Code Online (Sandbox Code Playgroud)

以下查询适用于 PostgreSQL 和 MySQL,但不适用于 MS SQL

SELECT EXISTS (SELECT 1 FROM posts WHERE topic = 'Sports')
Run Code Online (Sandbox Code Playgroud)

需要一个适用于所有三个供应商的查询。

mysql sql sql-server postgresql

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

当两个接口具有相同的方法名称时,如何访问inerface方法?

我遇到了一个非常棘手的情况,即实现具有与Member.below相同的方法名称的多个接口是该问题的示例代码.

public interface IBase1
{
    void show();
}
public interface IBase2
{
    void show();
}
public class BaseClass :IBase1, IBase2
{
    void IBase1.show()
    {
        Console.WriteLine("IBase1.show()");
    }
    void IBase2.show()
    {
        Console.WriteLine("IBase2.show()");
    }
}
Run Code Online (Sandbox Code Playgroud)

主类

class Program
{
    static void Main(string[] args)
    {
        BaseClass obj = new BaseClass();
        //How to access IBase1.show() and IBase2.show()
    }

}
Run Code Online (Sandbox Code Playgroud)

这里我有两个接口,每个接口都有一个show()方法,一个类实现了这两个接口,现在我的问题是如何BaseClass在Main函数中访问这个方法.

c# interface

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