我在运行以下查询时收到错误消息MSSQL Server 2005.
错误消息是Incorrect syntax near ','.我觉得查询还可以.但我不知道为什么会出错.
INSERT INTO PERSON (ID, EMP_NAME) VALUES ('E001', 'AAA'), ('E002', 'BBB');
Run Code Online (Sandbox Code Playgroud)
SQL Server不支持?
不用说,我在过去几天里试图理解枢轴/逆枢轴主题,但没有希望。我不明白什么是枢轴,什么是非枢轴。我有这张表:这张表称为Natalie_Playground.
BuildingName BillingMonth Consumption
Building1 1/1/2011 59318
Building2 1/1/2011 6962
Building3 1/1/2011 204300
Building4 1/1/2011 69600
Building5 2/1/2011 47316
Building6 2/1/2011 162300
Building7 2/1/2011 7122
Building8 2/1/2011 7444
Run Code Online (Sandbox Code Playgroud)
我不知道是否必须使用pivot或unpivot来使我的表格看起来像这样:
BuildingName January February March .... December
Building1 59318 47316
Building2 6962 162300
Building3 204300 162300
Building4 69600 7444
Run Code Online (Sandbox Code Playgroud) 我在sql方面不是很有经验,但通常可以通过构造基本查询,但这对我来说太复杂了.
我有两个查询,每个查询都给出了我需要的结果,但是我需要将它们组合起来得到我需要的最终结果.
在一个查询中,它抓取特定学生的所有"分数"并返回平均值.在另一个查询中,我从表中删除了最高和最低记录.
我想结合这些查询首先剥离最高和最低分数,然后仅返回剩余记录的平均分数.请帮助指导我使用正确的语法.
我的疑问:
这将返回所有最高和最低分数:
SELECT *
FROM `scores`
WHERE `tot_score` = (
SELECT MAX( `tot_score` )
FROM `scores` )
OR `tot_score` = (
SELECT MIN( `tot_score` )
FROM `scores` )
Run Code Online (Sandbox Code Playgroud)
这将返回平均分数:
SELECT `pres_id`, COUNT( `pres_id` ) , ROUND( AVG( `tot_score` ) , 2 ) , `username`, `name`, `pres_day`
FROM `scores`, `users`
WHERE `users.id_user` = `scores.pres_id`
GROUP BY `pres_id`
Run Code Online (Sandbox Code Playgroud)
我如何结合这些来获得我需要的结果?
希望你的家伙可以提供帮助.
我正在从一个表中编写一个查询,该表具有可变数据,特别是一个completed可以具有值的列,1或者3该表还具有两个qty_字段QTYORDERED和QTYSHIPPED
如果值为3in,COMPLETED那么QTYSHIPPED将包含一个值,如果值为1,QTYORDERED则将具有一个值.
我需要做的是在我的查询中创建一个列,只有一个QTY可以有人告诉我如何在SQL Server中实现这一点
我有一张这样的桌子
CREATE TABLE [dbo].[tbl_LandRigs](
[ID] [int] IDENTITY(700000,1) NOT NULL,
[Company] [nvarchar](500) NULL,
[Rig] [nvarchar](500) NULL,
[RigType] [nvarchar](200) NULL,
[DrawWorks] [nvarchar](500) NULL,
[TopDrive] [nvarchar](200) NULL,
[RotaryTable] [nvarchar](500) NULL,
[MudPump] [nvarchar](500) NULL,
[MaxDD] [nvarchar](50) NULL,
[Operator] [nvarchar](500) NULL,
[Country] [nvarchar](200) NULL,
[Location] [nvarchar](500) NULL,
[OPStatus] [nvarchar](200) NULL,
[CreatedDate] [datetime] NULL,
[CreatedByID] [int] NULL,
[CreatedByName] [nvarchar](50) NULL,
CONSTRAINT [PK_tbl_LandRigs] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] …Run Code Online (Sandbox Code Playgroud) 我在SQL Server 2012上有一个数据库,并且我遇到一些问题,一些表在一段时间后变得很慢,而且有助于重建索引.我想知道是否有人对其中任何一个可能出错的人提出建议,我将在下面发布他们的结构和索引.我自己没有构建这个结构,但可以完全修改.
表格1
索引:
表2
索引:
表3
索引:
我正在尝试为每个位置找到特定用户的最后一个条目.我还需要忽略余额为零的任何行.
样品表:
ID location user balance
-- -------- ---- -------
1 GLA A 10.21
2 GLA A 0.00
3 GLA B 45.68
4 GLA B 12.56
5 EDI C 1.23
6 EDI D 5.48
7 EDI D 0.00
8 LON E 78.59
9 MAN F 0.00
10 MAN F 12.98
11 MAN G 56.45
12 MAN G 89.25
13 MAN H 0.00
14 BIR I 0.00
15 BIR I 32.87
Run Code Online (Sandbox Code Playgroud)
结果要求:
ID location user …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个查询,该查询将选择仅包含整数数据的项目,例如:019280498,而不是 0129830INK。这些是产品数据库中的 sku,我当前的解决方案就是这样的:
列名称是SKU
SELECT *
FROM mydb
WHERE SKU not like '%a%' or SKU not like '%b%' or SKU not like '%c%' ..... or SKU not like '%z%'
Run Code Online (Sandbox Code Playgroud)
这只会返回其中不包含字符的值。然而它不喜欢我写的,我确信有一种更优雅的方法来执行它。
这就是我想要做的.基本上我有一些故意在表格中留空Staging_X并且稍后要更新.我想使用以下case条件更新这些列.我想在存储过程中实现它.
UPDATE Staging_X
SET Staging_X.[NoMaterial]
(SELECT (case
when ((([Up]+[Test])+[Mon])+[Down_percentage])*(1.68)=(0)
then (168) else [Lost]*(1.68)
end)
FROM Staging_X)
Run Code Online (Sandbox Code Playgroud) sql ×9
sql-server ×6
t-sql ×2
case ×1
if-statement ×1
mysql ×1
pivot ×1
sql-order-by ×1
unpivot ×1