//这是我的表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) 我有一张桌子.该表需要存储一个关于某个位置的数字值,所以最初我只有两个没有递增列的列,给出以下内容:
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) 我在我的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 2000中说"xxx".一个.exe通过sql job将数据插入到表"xxx"中.但是一旦插入数据,一个存储过程就是从"xxx表"读取数据并将其插入/更新到其他两个表中,并将状态更新回到同一个"xxx"表中.现在,客户端说在"xxx"表上发生了多个死锁.请友好地告诉我解决这个死锁问题的决议步骤以及如何逐步识别它.............
在此先感谢..... XXX
我需要在选择查询期间执行一些求和,但是根据我需要执行不同等式的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值,然后执行相关的方程式.
有任何想法吗
我有一个在Windows XP和SQL Server 2000 Service Pack 3上运行的.NET 1.1应用程序.该应用程序使用企业库数据和异常处理dll.
当我提交一个调用一些存储过程并最终执行INSERT到表中的表单时,sqlsrvr.exe进程会持续增加到300-500 MB.表单执行时间超过10分钟.
正常情况下的同一页面执行时间不超过1分钟.
这里可能会发生什么,怎么可以修复?
表格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).
我正在使用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中执行此操作.谢谢
谢谢.
下面我有一个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) 我有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)