小编Nen*_*vic的帖子

为多个记录插入SQL

我在运行以下查询时收到错误消息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不支持?

sql sql-server sql-server-2005

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

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 sql-server pivot unpivot

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

如何结合这两个sql语句

我在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)

我如何结合这些来获得我需要的结果?

mysql sql

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

用于检查字段值的CASE语句

希望你的家伙可以提供帮助.

我正在从一个表中编写一个查询,该表具有可变数据,特别是一个completed可以具有值的列,1或者3该表还具有两个qty_字段QTYORDEREDQTYSHIPPED

如果值为3in,COMPLETED那么QTYSHIPPED将包含一个值,如果值为1,QTYORDERED则将具有一个值.

我需要做的是在我的查询中创建一个列,只有一个QTY可以有人告诉我如何在SQL Server中实现这一点

sql sql-server if-statement case

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

SQL Order无法正常工作

我有一张这样的桌子

 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 sql-order-by sql-server-2008

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

继续重新索引sql表

我在SQL Server 2012上有一个数据库,并且我遇到一些问题,一些表在一段时间后变得很慢,而且有助于重建索引.我想知道是否有人对其中任何一个可能出错的人提出建议,我将在下面发布他们的结构和索引.我自己没有构建这个结构,但可以完全修改.

表格1

  • ID(int,not null)
  • 输入(tinyint,not null)
  • 名称(PK,nvarchar(255),非null)
  • fkID(PK,int,not null)
  • UID(int,not null)

索引:

  • I_UID(唯一,非群集)[UID]
  • I_Name(非唯一,非群集)[类型,名称]
  • pk_Name(Clustered)[Name,fkID]

表2

  • ID(PK,bigint,not null)
  • 名称(nvarchar(50),非null)
  • ShortValue(nvarchar(250),null)
  • StringValue(nvarchar(max),null)
  • IntValue(int,null)
  • FloatValue(float,null)
  • DateTimeValue(datetime,null)
  • BoolValue(位,null)
  • fkPID(FK,int,null)
  • fkAID(FK,int,null)
  • fkAGID(FK,int,null)
  • fkVID(FK,int,null)
  • fkCID(FK,int,null)
  • fkL(FK,int,not null)
  • fkIMID(FK,非null)
  • fkPRID(FK,int,null)
  • fkNID(int,null)

索引:

  • I_AG(非唯一,非群集)[fkAGID]
  • I_IM(非唯一,非群集)[fkIMID]
  • I_R(非唯一,非群集)[fkPRID]
  • PK_D(聚集)5447370
  • I_PDL(非唯一,非群集)[fkL]

表3

  • ID(PK,int,not null)
  • fkPID(FK,int,not null)
  • fkAID(FK,int,not null)
  • 排序(int,not null)
  • 组(nvarchar(50),null)
  • 大小(int,null)
  • FMB(nvarchar(50),null)

索引:

  • PK_D(聚集)5447370
  • I_PAA(非唯一,非群集)[fkAID]
  • I_PAP(非唯一,非群集)[fkPID]
  • I_PAPID(非唯一,非群集)[fkPID,fkAID]

sql sql-server

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

查找特定用户ID的最后一个条目

我正在尝试为每个位置找到特定用户的最后一个条目.我还需要忽略余额为零的任何行.

样品表:

    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)

sql t-sql sql-server sql-server-2005

0
推荐指数
2
解决办法
191
查看次数

仅选择包含字符的列中的整数数据

我正在尝试编写一个查询,该查询将选择仅包含整数数据的项目,例如: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)

这只会返回其中不包含字符的值。然而它不喜欢我写的,我确信有一种更优雅的方法来执行它。

sql t-sql sql-server-2008

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

使用CASE语句更新多行

这就是我想要做的.基本上我有一些故意在表格中留空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 sql-server stored-procedures

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