我正在使用SQL Server 2008 Management Studio.datetime我的桌子上有一栏.
当我选择表的所有内容时,日期列的数据类似于10/10/2013 12:00:00 AM.
我需要一个查询来显示表中的所有内容,日期列数据为10/10/2013.
我只想添加两个我一直使用此查询的SQL Server表列来执行此操作:
SELECT
sessionnumber, sessioncount, timespent,
SUM(sessioncount+timespent) as cnt
into d3
from clusters
order by sessionnumber
Run Code Online (Sandbox Code Playgroud)
但问题是它给我的错误如下:
消息8120,级别16,状态1,行1
列"clusters.sessionnumber"在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中.
我一直在努力克服这个问题,但我没有成功!任何人都可以提前帮助我!
我有2个数据库test1和test2.我从test1获得了备份.现在我想将此备份恢复到test2.
我的共享服务器中的test2数据库.当我正在恢复时,它会失败.并填充此错误消息.
Msg 3110, Level 14, State 1, Line 1
User does not have permission to RESTORE database 'databasename'.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.
Run Code Online (Sandbox Code Playgroud)
我将权限设置为db_backupoperator的用户.但它仍然没有恢复数据库.请让我知道我做错了什么.
谢谢
在上面的t-sql表中,我非常希望Total行显示在底部.我一直在反对这一点,并且在我的所有其他查询中简单地使用ORDER BY Status工作,因为Total在列表中的字母顺序比我们的大多数行值更远.
这不是这种情况,我无法弄清楚如何改变它
我是sql的新手,我甚至在确定如何使用谷歌搜索时遇到了很多困难.到目前为止,我刚刚得到了与Order By相关的结果
我有以下查询,我想在Percentage包含聚合的表达式上使用where子句:
SELECT Percentage = CONVERT(DECIMAL(10,1),100 - COUNT(some_irrelevant_column))
FROM Product P INNER JOIN Item PD
ON PD.ProductId = P.ProductId
WHERE Percentage < 50;
Run Code Online (Sandbox Code Playgroud)
这会产生以下错误:
列名称'Percentage'无效.
我当前的代码如下所示(不起作用).我想创建一个表格,其标题为cor_ @ dt,其中@dt是所选日期参数(在本例中为2013年8月14日)
USE [dWA_NSCC]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- exec [CORP\Eng].[No_Indx] '8/14/2013', '1'
ALTER PROCEDURE [CORP\Eng].[No_Indx]
(@dt datetime, @numb int)
AS
BEGIN
DROP TABLE @dt
CREATE TABLE @dt
(
ticker varchar(50),
no_indx_cusip varchar(50),
benchmark_cusip varchar(50),
maxcor decimal(10,5),
regcoef decimal(10,5),
dt_pnts int
)
... some more code
Run Code Online (Sandbox Code Playgroud) 我可以在带空格的表中声明SQL Server变量的名称吗?
create table test(
record name, float, not null
.....
Run Code Online (Sandbox Code Playgroud)
执行上面的查询给我一个错误.有没有办法variable name用空格声明变量
.. ??
这是我正在使用的代码:
SELECT SalesItemPK
,FieldName
,Value /*Convert date to the first of the selected month*/
FROM [Oasis].[dbo].[vw_SALES_SalesItemDetails]
WHERE SalesItemPK IN(
1425
,1225
,1556
,1589
,1599
,1588
,1590)
AND FieldName = 'Estimated Ship Date'
AND CONVERT(DATETIME, Value) >= CONVERT(DATETIME, '1/1/2010')
Run Code Online (Sandbox Code Playgroud)
(我只选择那些PK,因为这些是查询中的所有行.)
这是我收到的错误:
将varchar数据类型转换为日期时间数据类型会导致超出范围的值
以下是从我的视图返回的数据示例.最终的解决方案实际上将值转换为各自月份的第一个.但无论如何都会抛出错误.

当我删除WHERE时,它工作正常.所以有一些奇怪的事情到目前为止我似乎无法弄明白.有任何想法吗?
我有这个专栏,
ID Year ColumnDesc Amount
1 2000 Taken 100
1 2000 NotTaken 10
1 2001 Taken 200
1 2001 NotTaken 100
Run Code Online (Sandbox Code Playgroud)
所以我需要在具有相同ID和年份的金额之间做差异所以我的表应该是这样的.
ID Year ColumnDesc Amount
1 2000 Taken 90
1 2001 Taken 100
Run Code Online (Sandbox Code Playgroud)
谁能帮我..
我会努力尽力说出来.
我正在使用C#MVC4编写一个带有MS SQL数据库的网站.每当用户通过网站提交申请时,我会在桌面上查找,找到编号最高的会话代码(7位,数字),将此数字加1,并将其与用户详细信息一起填入数据库.
我们即将开始一个巨大的添加活动,并将有大量用户涌入.我担心如果两个用户同时提交他们的应用程序,那么将为两者生成相同的会话代码.有什么做法可以阻止这种情况?我正在考虑在数据库中使该字段唯一,并围绕我的会话代码生成和人口循环,如果失败则再次尝试.
有没有比这更好的做法(除了创建复合主键)?