CREATE TABLE [dbo].[INVS_ITEM_LOCATIONS]
([DEPARTMENT_CODE] [varchar](3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[IM_INV_NO] [numeric](10, 0) NOT NULL,
[LOCATION_CODE] [varchar](2) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[CURR_QTY] [numeric](10, 0) NOT NULL CONSTRAINT [DF__INVS_ITEM__CURR___1352D76D] DEFAULT ((0)),
[DO_QTY] [numeric](10, 0) NOT NULL CONSTRAINT [DF__INVS_ITEM__DO_QT__1446FBA6] DEFAULT ((0)),
[ALLOC_QTY] [numeric](10, 0) NOT NULL CONSTRAINT [DF__INVS_ITEM__ALLOC__153B1FDF] DEFAULT ((0)),
[YOB_QTY] [numeric](10, 0) NOT NULL CONSTRAINT [DF__INVS_ITEM__YOB_Q__162F4418] DEFAULT ((0)),
[FOC_QTY] [numeric](10, 0) NULL CONSTRAINT [DF__INVS_ITEM__FOC_Q__17236851] DEFAULT ((0)),
[USER_CREATED] [varchar](25) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[DATE_CREATED] [datetime] NOT NULL,
[USER_MODIFIED] [varchar](25) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[DATE_MODIFIED] …Run Code Online (Sandbox Code Playgroud) 我的要求是根据最常用的诊断获取诊断列表.因此,为了实现这一点,我在数据库的tblDiagnosisMst表中添加了一个名为DiagnosisCounter的列,每次用户选择它时,每个诊断增加1.所以,我的查询如下:
select DiagnosisID,DiagnosisCode,Name from tblDiagnosisMst
where GroupName = 'Common' and RecStatus = 'A' order by DiagnosisCounter desc,
Name asc
Run Code Online (Sandbox Code Playgroud)
因此,此查询帮助我获取诊断列表,但按诊断降序排列,然后按字母顺序排列诊断名称.但是现在我的客户想要在顶部只显示20个最常用的诊断名称,然后所有名称应按字母顺序显示.但不幸的是,我陷入了困境.如果我得到你对这个问题的有用建议,那将是非常感激的.
我想在SQL Query中进行分页和排序.
这是我的查询
;WITH myCTE AS
(SELECT (FirstName+''+LastName) as [User Name],
ROW_NUMBER() OVER (ORDER BY FirstName) as RowID
From [MyTable])
SELECT TOP 10 * FROM myCTE
WHERE RowID > 10*(2-1)
Run Code Online (Sandbox Code Playgroud)
它运行正常,但现在我想按计算列[用户名]对记录进行排序
所以我改变了这样的查询
;WITH myCTE AS
(SELECT (FirstName+''+LastName) as [User Name],
ROW_NUMBER() OVER (ORDER BY [User Name] ASC) as RowID
From [MyTable])
SELECT TOP 10 * FROM myCTE
WHERE RowID > 10*(2-1)
Run Code Online (Sandbox Code Playgroud)
但它给出了这个错误:
Msg 207, Level 16, State 1, Line 2
Invalid column name 'User Name'.
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我如何使用ROW_NUMBER()OVER计算列?或者如何在SQL查询中实现排序和分页记录?
我使用的数据库是SQL Server 2005.我试图将值DOWN舍入到最接近的.05(镍).
到目前为止,我有:
SELECT ROUND(numberToBeRounded / 5, 2) * 5
这几乎工程-我需要的是表达,当numberToBeRounded是1.99,评估到1.95,而不是2.
这让我很难过.我从i-net Clear Reports中复制并粘贴了一条SQL语句,并将其粘贴到Windows编辑器中,该编辑器正在编辑Ubuntu .sql文件,该文件只是一个文本文件.我已经连接到另一个MS SQL 2005服务器,没有问题通过isql和Perl.所以我遇到了一个带有大约10个连接的大型SQL语句的问题,并将语句简化为以下多行:
SELECT PKG.SO_ID
FROM
PACKAGES AS PKG
WHERE
PKG.tracking_no = '640038823199'
;
Run Code Online (Sandbox Code Playgroud)
此文件由多行带有unix行结尾组成.我的isql命令是:cat test1.sql | isql dsnname 'domain\username' password -v -b.
我使用-b作为批处理模式,因为我通过文件向isql发送输入.错误在第一行立即开始,但我仔细检查了语法,对于SQL Server 2005,'AS'在'PACKAGES AS PKG'中是可选的.
[37000][unixODBC][FreeTDS][SQL Server]Statement(s) could not be prepared.
[37000][unixODBC][FreeTDS][SQL Server]The multi-part identifier "PKG.SO_ID" could not be bound.
[ISQL]ERROR: Could not SQLExecute
[37000][unixODBC][FreeTDS][SQL Server]Incorrect syntax near the keyword 'FROM'.
[37000][unixODBC][FreeTDS][SQL Server]Statement(s) could not be …Run Code Online (Sandbox Code Playgroud) Files-Favorites只有当我想要传递的值不在那里时,我才想插入到我的表中.
我试过了:
INSERT INTO [Files-Favorites](fileID,auditorID)
VALUES ('1', '34')
WHERE (fileID != '1'
AND auditorID != '34')
Run Code Online (Sandbox Code Playgroud)
这不起作用.我试图不INSERT重复值.我怎么把它关掉?这适用于Microsoft SQL Server 2005.
谢谢
我需要将值转换为SQL Server DateTime.
数据如下所示:
我试过了
CONVERT(DATE, '20161021-12:55:16.000', 102)
Run Code Online (Sandbox Code Playgroud)
它会抛出一个错误.
我可以在SQL中获得帮助,将这些样本转换为有效的日期时间吗?
这些值也是UTC.
我需要将它们转换为EST.
感谢您的帮助.
sql sql-server sql-server-2005 sql-server-2008 sql-server-2008-r2
INSERT INTO t_MT_User (ID, Badge, Name, Scope, comp_code, dept_code, [status])
VALUES ((SELECT MAX(ID) + 1 FROM t_MT_User), @userBadgeNumber, @userName, @userScope, @companyCode, @departmentCode, 1)
Run Code Online (Sandbox Code Playgroud)
此查询将引发以下错误:
在此上下文中不允许子查询.只允许标量表达式.
如果我VALUES改为SELECT,我会得到另一个错误:
INSERT INTO t_MT_User (ID, Badge, Name, Scope, comp_code, dept_code, [status])
SELECT
((SELECT MAX(ID) + 1 FROM t_MT_User),
@userBadgeNumber, @userName, @userScope, @companyCode,
@departmentCode, 1)
Run Code Online (Sandbox Code Playgroud)
','附近的语法不正确.
我如何(SELECT MAX(ID) + 1 FROM t_MT_User)在这种背景下实现?
我有一个脚本,我今天需要约会但是从一年前开始,但是我还需要它与时间采用以下格式.
2017-11-07 00:00:00.000
Run Code Online (Sandbox Code Playgroud)
我目前到了一个我去年约会的地方而不是00:00:00.000时间戳.
select DATEADD(year, -1, GETDATE())
Run Code Online (Sandbox Code Playgroud)
这将返回运行查询的时间.
2017-11-07 13:37:10.770
Run Code Online (Sandbox Code Playgroud)
这是一个where子句,因为我需要从去年的今天开始获取一些数据,所以寻找一个where子句,从去年午夜开始到23:00:00000结束
它适用于运行SQL Server 2005的客户端.
如何在SQL Server中获取用户的上次登录日期和时间?
我想获取用户的上次登录日期和时间。SQL Server中是否有可用的内置SP?