标签: sql-server

如果两列中的数据集匹配> = 4次,如何选择*

我正在尝试提取有关重复调度的信息,但似乎无法提出一个简单的解决方案来提取我的报告数据。

我有下表:

tblMaster15

 ID | Equipment
----------------
  1 |   Sink
----------------
  2 |   Grill
Run Code Online (Sandbox Code Playgroud)

另一个包含位置信息的表,我必须使用 ID 加入:

tblMaster15_ABData

 ID | Unit | Region
--------------------
  1 | 600  |  6000
--------------------
  2 | 601  |  7000
Run Code Online (Sandbox Code Playgroud)

我正在尝试生成 ID、单位和设备的列表,但前提是单位和设备在给定时间段内相同超过 3 次。

我已经尝试了以下但它似乎给了我一切,而不仅仅是计数 > 3 的地方。

select   m.mrid, a.unit, a.Region, m.Equipment
from     MASTER36 m
join     MASTER36_ABDATA a
on       m.mrid = a.mrid
, (select   a.unit, m.Equipment
   from     MASTER36 m
   join     MASTER36_ABDATA a
   on       m.mrid = a.mrid
   group by a.unit, m.Equipment 
   having   count(*) > 3 …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2012

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

SQL Server 可用性组的故障转移需要多长时间?

在尝试确定最合适的高可用性选项时,我们专注于减少停机时间(计划内或计划外)。我已经能够收集有关故障转移群集实例 (FCI) 的统计信息(通过阅读大量 MSDN 文档和博客)。

我还没有找到有关可用性组的故障转移统计信息/次数的文档。

作为比较 (FCI):
故障转移 2008R2 集群的时间范围从 30 秒到 5 分钟不等(取决于流量以及硬件/网络设置):

进行手动故障转移时,它会完成对 LUN 的写入,将 LUN 切换到新的主动节点,并在新的主动节点上启动 SQL Server 实例。

在进行自动故障转移时,启动节点后,它将对数据库进行一致性检查并回滚任何进行中的事务。

可用性组
我知道,当您比较相同的硬件和流量时,可用性组应该能够更快地进行故障转移。

我无法找到比较两者的任何真实世界的实际指标。

具体来说,是否有人对正在积极使用的可用性组中的主写入节点进行故障转移所需的时间有任何指标
(故障转移到同步辅助)理想情况下,这将包括对任何 Microsoft 或可信赖来源的引用。请不要基于意见,只有指标。

sql-server failover availability-groups metrics

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

如何解决 FETCH 语句中选项 NEXT 的无效使用

我在 SQL Server 2008 中使用 jtds 1.2.2 驱动程序。下面是我尝试执行的查询

SELECT * from AM_API  FETCH NEXT 10 ROWS ONLY
Run Code Online (Sandbox Code Playgroud)

无论如何,在执行上述查询后,我得到以下错误

Caused by: java.sql.SQLException: Invalid usage of the option NEXT in the FETCH statement.
    at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368)
    at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2816)
    at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2254)
    at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:631)
    at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:477)
    at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:777)
    at org.jaggeryjs.hostobjects.db.DatabaseHostObject.executeQuery(DatabaseHostObject.java:510)
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?

更新

我读过这篇文章,说 FETCH 仅适用于 SQL Server 2012 以上。那么如何在SQL server 2008 中限制结果。要执行的查询不在我的控制之下。我只是后缀FETCH NEXT 10 ROWS ONLY到查询以限制结果。那么有没有办法通过添加限制查询作为查询的后缀来限制结果。

sql-server-2008 sql-server jdbc

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

我们可以在 SQL Server 上使用 VMDK 进行 FCI 吗?

我可以在 2 个节点之间共享 VMDK 以进行 SQL Server 故障转移群集设置的主动被动设置吗?

我看到的大多数文章都提到使用 RDM,但是我们在环境中使用 Veeam 备份,并且它不支持 RDM。

sql-server storage clustering configuration

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

如何简化多列 SQL Server where 子句中的重复变量

我知道必须有更好的方法来针对多列评估一组重复变量。我已经搜索了一段时间,但仍然没有很好的解决方案。有一个更好的方法吗?

SELECT *
FROM TABLE
WHERE 
  (SUBSTRING(COLUMN1,1,3) IN ('val1','val2','val3','val4'...REPEATS to 30)  
OR SUBSTRING(COLUMN2,1,3) IN ('val1','val2','val3','val4'...REPEATS to 30)  
OR SUBSTRING(COLUMN3,1,3) IN ('val1','val2','val3','val4'...REPEATS to 30)  
OR SUBSTRING(COLUMN4,1,3) IN ('val1','val2','val3','val4'...REPEATS to 30)  
OR SUBSTRING(COLUMN5,1,3) IN ('val1','val2','val3','val4'...REPEATS to 30))   
...REPEATS 5 MORE TIMES
Run Code Online (Sandbox Code Playgroud)

sql-server substring

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

SQL中的除法

我想将 int 数量除以一个数字,但我的输出不是我想要的。这是我的 DDL

Create Table Orders 
(
    id int IDENTITY(1,1) PRIMARY KEY NOT NULL
    ,partid varchar(100) NOT NULL
    ,qtyordered int DEFAULT '0'
    ,orderedby varchar(100) NOT NULL
    ,ordereddate date DEFAULT GETDATE()
)

Insert Into Orders (partid, qtyordered, orderedby) VALUES
('SS100', 10, 'James'), ('RR200', 5, 'Bob'), ('NN300', 3, 'Jake'), ('OO400', 5, 'Blue')
Run Code Online (Sandbox Code Playgroud)

现在我已经尝试使用 SQL Server 函数Ceiling()Floor()但没有得到我想要的输出。这是我试过的查询,我需要在 SQL Server 中做什么才能得到 2, 2, 1 的输出?

Select
partid
,CEILING(qtyordered/3) As [First] --want to be 2
,CEILING(qtyordered/3) As [Second] --want to …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql sql-server-2008-r2

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

T-SQL 的 RowNum(不是 TOP #)

试图运行更新,但我想逐步完成它,因为它有相当多的数据并且不想一次全部爆炸。

在 oracle 中,选择我想要的行要容易一些,因为您可以将它包含在WHERE子句中,但在 T-SQL 中您将它包含在select. 我想写一些类似的东西:

Update Instances
set thing = 'new thing'
Where rownum<500
Run Code Online (Sandbox Code Playgroud)

基本上想一次做500个,这个语法在TSQL中可行吗?

sql-server t-sql update

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

计算列与视图

我正在考虑最好的方法来做到这一点。如果我在 sql server 中有这样的表:
StudentPointsTable
StudentID
TestDate
Points

我还需要为学生计算平均值和标准差。我知道我可以创建一个视图,或者用这些计算列创建一个新表,或者将计算列添加到这个表中。

不确定是否还有其他选择,但在性能方面,最好的方法是什么?

index sql-server view computed-column

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

配置 Dynamics GP 的 (SQL Server) 磁盘

我在工作中偶然成为了一名 DBA,当我接手它时,安静得一团糟。幸运的是,我们已获准构建新系统以升级我们的会计系统:Microsoft Dynamics GP。我想遵循或超越 Microsoft 的所有建议。我们当前的环境存在严重的性能问题。我想得到这个论坛对我们 SA 对我们新系统配置的计划的看法,与 Microsoft 推荐的相比。

就磁盘配置而言,Microsoft 建议:

  • 操作系统/应用程序 RAID 1
  • SQL 日志 RAID 1
  • SQL 数据 RAID 5
  • SQL 临时数据库 RAID 1
  • SQL 备份 RAID 0。

我们的 SA 可用的是:带有 VNXe 3200 SAN 的 VMware 6 数据中心。该 SAN 有 11 个 600 GB 10k RPM 驱动器和 9 个 2TB 7.2k RPM 驱动器。它还具有 6 个 200GB 闪存驱动器,可用作最常访问数据的高速缓存。因此,推荐的硬盘规格似乎没有考虑到像我们这样虚拟化的数据中心。他将所有 10k RPM 驱动器汇集到一个 RAID 6 + 1 热备件中,将所有 7.2k RPM 驱动器汇集到第二个 RAID 6 + 1 热备件中,并分别将它们标记为性能池和容量池。他放入一个卷的盘片越多,他可以获得的性能就越高,再加上 RAID 6 和热备份带来的所有冗余。但是,他希望将数据库的很大一部分存放在该缓存中。

鉴于我们的会计系统和它的SQL …

sql-server disk-structures microsoft-dynamics

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

如何获得组合列的最大值?

我有下面的表: filenamefiletypeversionrevision

我想编写一个查询,为 a and找到最高的 versionAND 。例如,以下将起作用:revisionfilenamefiletype

select 
 filename 
,filetype
,max(version + revision) as combined
from dmkr_asline.cmires_lbyi
group by filename, filetype
order by filename, filetype;
Run Code Online (Sandbox Code Playgroud)

但是,我希望能够返回versionrevision作为单独的列,以便我可以加入另一个表。我不能使用max,因为我想在每列max revisionmax version

sql-server

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