标签: sql-server-2000

什么是正确的Select语句?

//这是我的表1

    TransactionNum     Type  
    65658               0  
    65659               0  
    65660              449  
    65661               0  
Run Code Online (Sandbox Code Playgroud)

//这是我的表2

    Type    Description          
    445 Discount #1  
    446 Discount #2  
    447 Discount #3  
    448 Discount #4  
    449 Discount #5  
    450 Discount #6  
Run Code Online (Sandbox Code Playgroud)

//这是我的剧本

    SELECT a.TransactionNum,b.Description FROM Table1 a,Table2 b
    WHERE a.Type=b.Type ORDER BY TransactionNum  
Run Code Online (Sandbox Code Playgroud)

//结果

    TransactionNum   Description
    65659            Discount #4
Run Code Online (Sandbox Code Playgroud)

//我希望结果是这样的,结果中也应该包含0类型的TransactionNum,请帮我这个,我在这里使用SQL2000.

    TransactionNum      Description   
    65658               0  
    65659               0  
    65660              Discount #5  
    65661               0
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2000

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

TSQL插入难题

我有一张桌子.该表需要存储一个关于某个位置的数字值,所以最初我只有两个没有递增列的列,给出以下内容:

RefID | TypeID
    1 | 1
    1 | 3
    1 | 6
    2 | 3
    3 | 5
    3 | 6
Run Code Online (Sandbox Code Playgroud)

第一列是位置的参考,第二列是实际值.

问题是如何确定给第一列的值.我的想法是添加一个自动递增字段来生成这些值,所以我将改为以下数据:

ID | RefID | TypeID
1  | 1   | 1
2  | 1   | 3
3  | 1   | 6
4  | 4   | 3
5  | 5   | 5
6  | 5   | 6
Run Code Online (Sandbox Code Playgroud)

因此,自动编号列(第1列)充当参考列的种子.

所以我有两个问题 - 将标识列值复制到引用列,并将引用值返回给应用程序,以便在该位置有多个值时可以使用它.

我想出了这个存储过程:

CREATE PROCEDURE [dbo].[AddCaseType]
(
    @TypeID INTEGER,
    @CaseID INTEGER = NULL OUT 
)
AS
BEGIN

    INSERT INTO …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server-2000

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

调整慢速SQL查询

我在我的SQL Server上运行了一个应用程序,它开始减慢特定任务的速度.我运行SQL事件探查器并注意到以下查询占用了大量(1-2分钟)的时间. 我无权访问代码来更改查询.
我可以在数据库中调整/更改任何内容吗?下面的声明中的PC10000表有大约.119000条记录.我还附上了执行计划.

SELECT TOP 25 
    zProjectID, zTaskID, zTransactionNumber, zTransactionDate, zUserID, 
    zCostCategoryDDL, zCostCategoryString, zSubCostCategory, zSubCostCategoryString, 
    zDepartmentID, zJournalEntry, zPostingDate, zSalesPostingDate, zPeriodNumber,
    zTransactionDescription, zBillingDescriptionLine1, zBillingDescriptionLine2, 
    zBillingDescriptionLine3, zBillingDescriptionLine4, zSalesAccountIndex, 
    zSalesAccountString, zDistDocumentTypeDDL, zDistDocumentNumber, zDistSequenceNumber,
    zSalesDocumentTypeDDL, zSalesDocumentNumber, zSalesLineNumber, zDistHistoryYear, 
    zSeriesDDL, zSourceDoc, zWebSource,    zOrigDocumentNumber, zOrigDocumentDate, 
    zOrigID, zOrigName, zExpenseStatusDDL, zApprovalUserIDCost, zAccountIndex,
    zAccountNumberString, zBillingStatusDDL, zApprovalUserIDBilling, zBillingWorkQty, 
    zBillingWorkAmt, zQty, zQtyBilled, zUnitCost,
    zUnitPrice, zRevenueAmt, zOriginatingRevenueAmt, zCostAmtEntered, zCostAmt, 
    zOriginatingCostAmt, zPayGroupID, zPayrollStatusDDL, zTotalTimeStatusDDL, 
    zEmployeeID, zHoursEntered, zHoursPaid, zPayRecord, zItemID, zItemDescription,
    zUofM, zItemQty, zBurdenStatusDDL, zUserDefinedDate, zUserDefinedDate2, 
    zUserDefinedString, zUserDefinedString2, zUserDefinedCurrency, 
    zUserDefinedCurrency2, zNoteIndex, zImportType, DEX_ROW_ID …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2000

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

单个表上的SQL Server死锁问题

我有一个表,在sql server 2000中说"xxx".一个.exe通过sql job将数据插入到表"xxx"中.但是一旦插入数据,一个存储过程就是从"xxx表"读取数据并将其插入/更新到其他两个表中,并将状态更新回到同一个"xxx"表中.现在,客户端说在"xxx"表上发生了多个死锁.请友好地告诉我解决这个死锁问题的决议步骤以及如何逐步识别它.............

在此先感谢..... XXX

sql-server deadlock sql-server-2000

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

tsql条件数学方程

我需要在选择查询期间执行一些求和,但是根据我需要执行不同等式的2个值.希望一个例子可以证明

基本上我需要执行以下总结

if x > y then (x - y + z) or
if x < y then (x - x + z) basically i am setting this to 0.
Run Code Online (Sandbox Code Playgroud)

到目前为止,我认为我可以使用2个表来转储x> y值和x <y值,然后执行相关的方程式.

有任何想法吗

t-sql sql-server sql-server-2000

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

sqlsrvr.exe消耗大量内存

我有一个在Windows XP和SQL Server 2000 Service Pack 3上运行的.NET 1.1应用程序.该应用程序使用企业库数据和异常处理dll.

当我提交一个调用一些存储过程并最终执行INSERT到表中的表单时,sqlsrvr.exe进程会持续增加到300-500 MB.表单执行时间超过10分钟.

正常情况下的同一页面执行时间不超过1分钟.

这里可能会发生什么,怎么可以修复?

sql-server-2000

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

找到缺少的日期范围

表格1

code        StartDate        EndDate
A           01/01/2011        06/15/2011
A           06/25/2011        06/30/2011
B           01/12/2011        07/31/2011
B           08/3/2011         12/31/2011
Run Code Online (Sandbox Code Playgroud)

表2

code        StartDate        EndDate
A           01/01/2011       06/30/2011
B           01/12/2011        07/31/2011
B           08/3/2011         12/25/2011
Run Code Online (Sandbox Code Playgroud)

我需要找到Table1中的内容而不是Table2中的内容

code        StartDate        EndDate
B           12/26/2011        12/31/2011
Run Code Online (Sandbox Code Playgroud)

和Table2中的内容相反,而不是Table1中的内容

code        StartDate        EndDate
A           06/16/2011       06/29/2011
Run Code Online (Sandbox Code Playgroud)

日期字段中没有时间组件,并且首选T-SQL(SQL Server 2000).

t-sql sql-server-2000

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

如何获取当前的sproc会话ID并删除该sproc实例中存在的临时表?

我正在使用sql2000,我想在sproc实例或查询窗口中自动删除#temp表.这更多用于测试目的而不是生产.有没有办法获取当前会话或sproc实例甚至查询实例,并使用它来删除该实例中的#temp表.我不想在其他实例中删除#temp表.

我注意到另一个Stack Overflow问题使用了这段代码:

declare @sql nvarchar(max) 
select @sql = isnull(@sql+';', '') + 
                                     'drop table ' + quotename(name) from tempdb..sysobjects 
where name like '#%' exec (@sql) 
Run Code Online (Sandbox Code Playgroud)

我只想检测当前会话或实例中的#tmp表.我还需要在sql2008中执行此操作.谢谢

谢谢.

sql-server sql-server-2000 sql-server-2008

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

T-SQL SUM Total

下面我有一个T-SQL查询,它可以带回购买的商品数量,减去折扣和总数 - 按购买月份/年份分组.如何更新查询以返回总计行,我可以在总列中添加金额?能够将所有行添加起来会很好,但我的主要项目是我需要能够获得总计.谢谢.

    Select DATENAME(month, [OrderDate]) + ' ' + CAST(YEAR(OrderDate) AS CHAR(4)) 
    AS [Month],
    SUM(Amount) AS [Amount],
    SUM(Discount1) AS [Discount 1],
    SUM(Discount2) AS [Discount 2],
    SUM(Amount - Discount1 - Discount2) AS [Total]
    From 
    Orders
    JOIN Customer on orders.cust_ky=customer.cust_ky
    GROUP BY DATENAME(month, [OrderDate]) + ' ' + CAST(YEAR(OrderDate) AS CHAR(4))
    ORDER BY MAX(OrderDate)
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2000

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

如何检查值中的前一个或前两个或前三个字符是字母

我有IDNumber列的表,其中包含所有数字或字母数字,其中前两个或前三个或前三个字符是字母。我要做的就是从该值中删除那些字母。

请注意,数据库位于SQL Server 2000中。

例如:

1430112345679 (This is OK)
PO02456977785 (Remove first two letters)
C035343542654 (Remove first letter)
QPD1236548    (Remove first three letters)
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2000

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