标签: sql-server-2005

合并表sql server中多行的记录

我有一些脏的资源使用记录,t_resourcetable其中看起来像这样

resNo   subres    startdate                        enddate
1        2        2012-01-02 22:03:00.000          2012-01-03 00:00:00.000
1        2        2012-01-03 00:00:00.000          2012-01-04 00:00:00.000
1        2        2012-01-04 00:00:00.000          2012-01-04 16:23:00.000
1        3        2012-01-06 16:23:00.000          2012-01-06 22:23:00.000
2        2        2012-01-04 05:23:00.000          2012-01-06 16:23:00.000

我需要以这种方式合并那些脏行

resNo   subres    startdate                        enddate
1        2        2012-01-02 22:03:00.000          2012-01-04 16:23:00.000
1        3        2012-01-06 16:23:00.000          2012-01-06 22:23:00.000
2        2        2012-01-04 05:23:00.000          2012-01-06 16:23:00.000

这应该更新到同一个表.我有超过40k行,所以不能使用游标.请通过更优化的sql语句帮助我清理它.

提供的解决方案不会遇到类似的情况

resNo   subres    startdate                        enddate
1        2        2012-01-02 22:03:00.000          2012-01-03 00:00:00.000
1        2        2012-01-03 00:00:00.000          2012-01-04 00:00:00.000
1        2 …

c# sql t-sql sql-server-2005 sql-server-2008

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

SQL Server中的插入和更新以用于存储过程

我在SQL Server中有这样的表:

varID(PK)    dataID(PK)  is_used
A            1           0
B            1           0
Run Code Online (Sandbox Code Playgroud)

然后,如果varID/dataID组合存在,我正在加载数据以将is_used更新为1 ,否则添加它.

所以我必须插入/更新这些varID/dataID组合.

varID(PK)    dataID(PK)  
B            1           
C            1
Run Code Online (Sandbox Code Playgroud)

所以更新的表格如下所示:

varID(PK)    dataID(PK)  is_used
A            1           0
B            1           1
C            1           1
Run Code Online (Sandbox Code Playgroud)

最简单的方法是什么?我将在存储过程中执行此操作.

sql sql-server stored-procedures sql-server-2005

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

输入字符串的格式不正确

输入字符串的格式不正确.

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.FormatException:输入字符串的格式不正确.

来源错误:

第30行:lbl_userName.Text = objReader.Item(0)&""&objReader.Item(1)
第31行:lbl_resumeHead.Text = objReader.Item(3)
第32行:lbl_experience.Text = Convert.ToInt32(objReader.Item (4))

如何显示Integer表中的值.

vb.net sql-server-2005

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

SQL Server无法识别\ r?

简单查询:

UPDATE [WebERP].[dbo].[Users]
   SET 
       [ActiveDirectoryUser] = null

WHERE ActiveDirectoryUser='xxx\royin'
Run Code Online (Sandbox Code Playgroud)

错误:

消息512,级别16,状态1,过程Users_Update,行17
子查询返回多个值.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.该语句已终止.

我想问题出在这里:

在此输入图像描述

它把它当作回车.

(如果我改变\r\b它的确定.)

我该如何解决?

sql-server sql-server-2005

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

在SQL Server 2005中插入查询

我的SQL Server表结构是:

BranchName
BranchManagerName
Address
Zip Info
PhoneNo
FaxNo
Email
Status
CreatedOn
Run Code Online (Sandbox Code Playgroud)

现在,我尝试通过值Zip Info列一样State=XXXX,city=YYYY,Zip=123三个值.

我需要这三个值(State,City,Zip)存储在sql表格中的Zip Info格式state,city-Zip(xxxx,yyyy-123)列中.

如何在SQL Server 2005中编写插入查询?

sql sql-server sql-server-2005 insert

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

使用CASE的SQL用户定义函数 - 请完善它

你能建议我改进下面的Queru Please.

 ALTER FUNCTION GetTemplate_Lookup_id(@pid int)
    RETURNS  INT
    AS
    BEGIN
    DECLARE @Return int
    SELECT @Return= CASE @pid
    -- SOME OTHER Comment
    WHEN 208 THEN  4
    WHEN 283 THEN  4
    WHEN 402 THEN  4
    WHEN 42 THEN  4

    --SOME OTHER Comment
    WHEN 211 THEN  3
    WHEN 286 THEN 3
    WHEN 399 THEN 3
    WHEN 45 THEN 3

    --SOME OTHER Comment
    WHEN 209 THEN 1
    WHEN 284 THEN 1
    WHEN 397 THEN 1
    WHEN 43 THEN 1

    --SOME Other Comment
    WHEN 210 …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2005

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

CQ中的用户代码未对SQLException进行处理

我试着检查用户是否存在.我尝试:

public static bool GetUser(string tblName, string UserName,string Password,string Usertype)
        {
            try
            {

                using (SqlConnection con = Connection.GetConnection())
                {
                    using (SqlCommand cmd = con.CreateCommand())
                    {
                       cmd.CommandText = "select count(UserName) from " + tblName + " where Password=" + Password + " and usertype=" + Usertype + " and username="+ UserName + "";
                        object obj = cmd.ExecuteScalar();
                        if (obj != null)
                            return true;
                        return false;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }
Run Code Online (Sandbox Code Playgroud)

当我调用此方法时出现以下错误.
我的错误
连接成功建立,我这样称呼这个方法.

bool Check = …
Run Code Online (Sandbox Code Playgroud)

c# sql asp.net sql-server-2005

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

从日志表中获取昨天的记录

场景:

具有时间戳字段的大量记录(2百万)的日志表.除了ID作为主键之外没有索引,并且索引(或任何其他持久对象)的创建是不可能的

我想从昨天开始选择所有记录.

我知道有几种方法可以做到这一点,我只想对"最好"的方式发表看法,而且最好的意思是最快.

这里的诀窍是时间戳的"时间",因为如果现在是上午11点,我会做类似的事情:

where modifiedDate between dateadd(dd,-1,getdate()) and getdate()
Run Code Online (Sandbox Code Playgroud)

我只从昨天11点获得记录,并将从今天获得数据

它的sql 2005所以没有"Date"数据类型

sql performance time sql-server-2005 date

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

SQL Server中的触发器 - 获取为Audit Table完成的事务类型

我正在写入将记录插入Audit表格的触发器.

只要目标表中的数据发生更改,触发器就会将旧值,新值更新到审计表

此外,还有名为Transaction和的列Transaction_Status

Transaction列定义事务的类型.可以INSERT,UPDATEDELETE.
Transaction_Status列表示SUCCESSFAILURE

怎么做到这一点?

我的触发器:

Alter Trigger TR_test
ON subscribers
FOR UPDATE
AS BEGIN
DECLARE @OldValue xml,@NewValue xml, @changedby varchar(50), @ReferenceId int
-----------------------------------------------------------------------------
SELECT @OldValue=b.username, @NewValue=a.username, 
       @ReferenceId = a.user_id, @changedby = a.modified_by
FROM inserted a, deleted b;
----------------------------------------------------------------------------- 
INSERT INTO [dbo].[audit_log]
           ([old_value],[new_value],[module],[reference_id],[transaction]
           ,[transaction_status],[stack_trace],[modified_on],[modified_by])
     VALUES
(@OldValue,@NewValue,'Subscriber',@ReferenceId,'_transaction',
'_transaction_status','_stack_trace',getdate(),555)

-----------------------------------------------------------------------------
END
Run Code Online (Sandbox Code Playgroud)

sql-server triggers sql-server-2005

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

如何在sql中获得前十名的结果?

这个delow查询给我一些错误:

declare @date1 nvarchar(100) , @date2 nvarchar(100)

select @date1='2009-04-20', @date2='2009-05-20'

select top 10 t.VisitingCount , t.Page
    from (
           select  Count(Page) as VisitingCount,Page
               from scr_SecuristLog   
               where Date between @date1 and @date2  
                   and [user] in (select USERNAME             
                                      from scr_CustomerAuthorities
                                 )  
               group by Page order by [VisitingCount] desc 
         ) t 
Run Code Online (Sandbox Code Playgroud)

错误:

除非还指定了TOP或FOR XML,否则ORDER BY子句在视图,内联函数,派生表,子查询和公用表表达式中无效.

sql sql-server sql-server-2005

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