AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-68335

Jmaurier's questions

Martin Hope
Jmaurier
Asked: 2017-06-09 12:37:50 +0800 CST

在 SSMS 中针对更高版本的 SQL Server 使查询失败?

  • 4

我的计算机上运行着 SQL Server 2014 和一个compatibility_level100 的数据库(SQL Server 2008)。我认为这足以在 SSMS 中编写仅适用于 SQL Server 2008 及更低版本的查询,但出于某种原因,SSMS 运行使用OVER (PARTITION BY ...)仅适用于 2012 及更高版本的子句(带有 BETWEEN 参数)的查询。

我们的软件需要与 2008 R2 及更高版本兼容。如果我编写与 2008 R2 不兼容的查询,是否有我可以更改的设置会导致我的查询在 SSMS 中失败?

ssms sql-server-2014
  • 4 个回答
  • 823 Views
Martin Hope
Jmaurier
Asked: 2017-02-16 08:29:30 +0800 CST

列出具有特定表和列的所有数据库的列值

  • 1

我真正要寻找的是每个数据库的名称以及表ApplicationVersion和列[Version]以及[Version]. 我的一些数据库没有指定的表列,应该被忽略。该表始终只有一行。

Database    ApplicationVersion
DB_001      5.123.0.234
DB_002      5.123.0.234
DB_003      6.223.0.435
sql-server t-sql
  • 2 个回答
  • 235 Views
Martin Hope
Jmaurier
Asked: 2017-02-01 13:42:14 +0800 CST

数据类型会影响视图的性能吗?

  • 1

我刚刚注意到,在我们的数据库中,我们有一个将BIT列转换为INT. 基础表有一个计算BIT列,其定义如下:

IncludeInJobTotals as (CONVERT(bit, 
case 
when FL.[Status]=(5) 
  or FL.[Status]=(3)
  or FL.[Status]=(2) 
then (1) 
else (0) 
end,(0)))

在使用的视图中,IncludeInJobTotals我们将其转换为INT. 这会导致任何性能问题吗?可能还有哪些问题?有什么理由使用INToverBIT吗?

sql-server
  • 1 个回答
  • 107 Views
Martin Hope
Jmaurier
Asked: 2016-06-23 11:19:13 +0800 CST

基于时间的查询帮助

  • 3

我似乎无法让它按照我需要的方式工作。我有两张桌子Assignment和Event。

Assignment
StartDate     EndDate       Equipment
4/1/2016      4/23/2016     1001
4/3/2016      4/10/2016     1002
3/30/2016     4/20/2016     1003

Event
StartDate     EndDate       Equipment    Event
4/2/2016      4/3/2016      1001         maintenance
4/8/2016      4/10/2016     1001         maintenance
4/4/2016      4/5/2016      1002         maintenance

我需要加入设备并有一个使用事件划分分配的输出。对于此示例数据,我将得到如下所示的输出:

StartDate     EndDate       Equipment    EventStatus
4/1/2016      4/2/2016      1001         Active
4/2/2016      4/3/2016      1001         maintenance
4/3/2016      4/8/2016      1001         Active
4/8/2016      4/10/2016     1001         maintenance
4/10/2016     4/23/2016     1001         Active
4/3/2016      4/4/2016      1002         Active
4/4/2016      4/5/2016      1002         maintenance
4/5/2016      4/10/2016     1002         Active
3/30/2016     4/20/2016     1003         Active

所以对于设备号 1001;它被分配到任务中,然后进行了两次维护。该维护将作业分为 5 个部分,如下所示:

---------------------------------------------------------------------
|  Active  |maintenance|  Active  |maintenance|       Active        |
---------------------------------------------------------------------

这些部分中的每一个都必须有自己的行,其中包含该部分的开始和结束日期。我怎样才能写一个查询来完成这项工作?

sql-server
  • 2 个回答
  • 91 Views
Martin Hope
Jmaurier
Asked: 2016-06-09 09:38:41 +0800 CST

如何按数据类型选择列名

  • 6

如何获取表中特定类型(例如日期时间)的所有列的名称?

更好——我怎样才能做同样的事情,但将多个表连接在一起,然后列出列名及其来自的表?

sql-server
  • 5 个回答
  • 13401 Views
Martin Hope
Jmaurier
Asked: 2016-04-30 08:16:03 +0800 CST

如何加速存储过程?

  • 4

这是我刚刚遇到的一个面试问题。我想知道对此的一个好的答案是什么以及不同的选择是什么。

我们有一个存储过程需要 26 秒才能返回从 5 个表中获取的信息。我们的服务器在 25 秒后超时。你怎么能解决这个问题?

这不是逐字逐句的,但它接近被问到的问题。我一点头绪都没有,我什至不认为我们在 db 类中讨论过那种细节。我能想到的就是告诉他们要确保表已编入索引,但我什至不知道这是否正确。

这是一个示例,说明这在创建时的样子:

CREATE PROCEDURE GetOrderForCustomers(@CustID varchar(20))
AS
BEGIN
SELECT * FROM orders o
    JOIN state s ON s.stateID = o.stateID
    JOIN customers c ON c.customerID = o.customerID
    JOIN items i ON i.itemID = o.itemID
    JOIN parts p ON p.partListID = o.partListID
WHERE c.customerID = @CustID
END

这将再一次花费比超时时间允许的时间稍长的时间。

  • 在语法上加速此存储过程的选项有哪些?
  • 哪些不同类型的元数据可能有助于解决问题?
  • 在上述过程中应该避免哪些做法?
  • (作为一个非必需的旁白问题)告诉面试官我会在 Stack Overflow 上问现实生活中的问题是否可以接受?
sql-server performance
  • 1 个回答
  • 362 Views
Martin Hope
Jmaurier
Asked: 2015-07-08 13:00:00 +0800 CST

自定义订单

  • 2

还有其他方法可以用于ORDER我的结果吗?

20150507094958A DISPOSED        2015-05-07 09:50:00.853 Samuel  MONEY
20150507094958A DISPOSED        2015-05-22 09:25:00.000 Jeff    AUTOMOBILES
20150507094958A DISPOSED        2015-05-26 09:39:00.000 Joel    FIREARMS
20150507094958A DISPOSED-READY  2015-05-29 09:57:00.000 Samuel  MONEY
20150706132447A OUT             2011-10-19 11:25:00.000 Samuel  AUTOMOBILES
20150406110457A OUT             2015-04-02 11:07:00.000 Shane   FIREARMS
20150406105740A OUT             2015-04-06 11:00:00.000 Cordero FIREARMS
20150406105740A IN              2012-03-27 21:15:00.000 Alex    BICYCLES

我想把所有的都FIREARMS放在最上面,然后仍然按任何其他列排序。

sql-server sql-server-2008
  • 2 个回答
  • 1095 Views
Martin Hope
Jmaurier
Asked: 2015-07-07 14:44:41 +0800 CST

枢轴给出太多结果

  • 2

我正在尝试了解这个枢轴的工作原理。我不认为我理解得很正确。我只想对一堆具有某些状态的项目类型进行简单计数。我正在使用的表格包含以下列:[Status]、[ItemType] 和许多其他列。

这是我目前正在做的

SELECT [NEW]
    ,[IN]
    ,[OUT]
    ,READY = [READY FOR DISPOSAL] 
    ,TRANSIT = [IN ROUTE TO DISPOSAL]
    ,[DISPOSED]
    ,[TYPE] = [ItemType] 
FROM [EVAULTTEST].[dbo].[Items] AS ei

PIVOT(
COUNT([Status])
FOR [Status] IN ([NEW], [IN], [DISPOSED]
    , [IN ROUTE TO DISPOSAL], [OUT], [READY FOR DISPOSAL])
) AS piv

结果

1   0   0   0   0   0   FIREARMS
0   1   0   0   0   0   FIREARMS
1   0   0   0   0   0   FIREARMS
0   1   0   0   0   0   FIREARMS
1   0   0   0   0   0   MONEY
1   0   0   0   0   0   Automobiles
0   1   0   0   0   0   Aircraft
1   0   0   0   0   0   Automobiles
1   0   0   0   0   0   Automobiles
1   0   0   0   0   0   ALCOHOL
0   0   1   0   0   0   MONEY
0   0   1   0   0   0   AUTOMOBILES
0   0   1   0   0   0   AUTOMOBILES

为什么这些不折叠成这样的东西:

2   0   0   0   0   0   FIREARMS
0   2   0   0   0   0   FIREARMS
1   0   0   0   0   0   MONEY
3   0   0   0   0   0   Automobiles
0   1   0   0   0   0   Aircraft
1   0   0   0   0   0   ALCOHOL
0   0   1   0   0   0   MONEY
0   0   2   0   0   0   AUTOMOBILES
sql-server sql-server-2008
  • 1 个回答
  • 44 Views
Martin Hope
Jmaurier
Asked: 2015-07-04 08:49:40 +0800 CST

有关列及其包含的数据的信息?

  • 3

我正在处理一个表,该表具有与表中每个项目关联的 3 个不同日期。我不明白每次是什么,所以我想知道是否有一个标准的地方,制作这张桌子的人可能已经记录了他们的意思。

RecoveryDate              |UpdateDateTime           |InitialCheckIn
2015-04-06 11:00:00.000   |2015-05-22 08:52:35.373  |2015-04-06 11:04:35.837
2015-04-02 11:07:00.000   |2015-05-06 12:52:48.923  |2015-05-01 13:03:44.977
2015-05-07 09:50:00.853   |2015-07-01 11:09:53.337  |2015-05-26 10:03:46.760
2015-05-22 09:25:00.000   |2015-06-05 08:27:43.917  |2015-05-26 09:24:47.100
2015-05-26 09:39:00.000   |2015-06-30 12:48:20.960  |2015-05-26 10:03:46.620
2015-05-29 09:57:00.000   |2015-07-02 13:53:29.277  |2015-06-03 10:21:59.687
2015-06-01 12:05:00.000   |2015-06-02 14:25:01.197  |2015-06-01 12:07:33.827
sql-server sql-server-2008
  • 1 个回答
  • 29 Views
Martin Hope
Jmaurier
Asked: 2015-06-30 10:22:32 +0800 CST

为一周中的一天中的每个计数(*)创建一列

  • 6

我有一张做计件工作的人的桌子。表中的每个条目都有一个用户 ID、名称和他们输入的每个报告的日期。

我需要每周报告这些人从周日开始每天所做的事情

  1. 从周日开始,你如何按一周分组?
  2. 您如何为每天的每个 COUNT(*) 制作一列?

t0001, Tod, 2015-6-29
t0001, Tod, 2015-6-29
t0001, Tod, 2015-6-29
t0001, Tod, 2015-6-29
t0001, Tod, 2015-6-29
t0001, Tod, 2015-6-28
t0001, Tod, 2015-6-28
b0002, Ben, 2015-6-29
b0002, Ben, 2015-6-29
b0002, Ben, 2015-6-28

这就是我要找的。

NAME | S | M | T | W | R | F | S | TOTAL
----------------------------------------
TOD  | 2 | 5 | - | - | - | - | - | 7
BEN  | 1 | 2 | - | - | - | - | - | 3
sql-server sql-server-2008
  • 3 个回答
  • 12312 Views
Martin Hope
Jmaurier
Asked: 2015-06-12 13:53:00 +0800 CST

基于 count()、日期范围和字符串匹配进行选择

  • 4

我会在这里尽力而为。

我有一份已写的引文清单以及有关这些引文的一些信息。我需要选择在给定日期范围内已作废的引文,以及撰写它的人在同一日期范围内也写了 5 次以上的引文。

我想要一个结果,显示那个人 'x' 写的所有引文 引文 1 ... 信息,引文 2 ... 信息,引文 3 ... 信息,引文 4 ... 信息,引文 5 ... 信息, ... ETC

DECLARE @BeginDate Date = '3/15/2015'
DECLARE @EndDate Date = '4/1/2015'
DECLARE @MinVoids INT = 5

SELECT d.CreatorUserId

FROM [ECITATION].[dbo].[tblDocument] AS d
    JOIN [ARK].[dbo].[DocStatus] AS ds 
    ON  d.DocStatus = ds.StatusNum AND (ds.StatusName LIKE 'void%')

WHERE DateModified BETWEEN @BeginDate AND @EndDate 
--DateModified is when the document was voided--

GROUP BY d.CreatorUserId
HAVING COUNT(d.CreatorUserId) >= @MinVoids

这给了我正确的指导,但不是全部。我一辈子都弄不明白为什么它没有抓住所有人。(应该是 16,我只得到 11)。我有一种感觉,COUNT 没有按照我想要的方式工作。

只是因为我偏执于在 SQL 专家面前显得无知,我大约两周前才开始学习 SQL。

解决方案 我遗漏了一些可能有帮助的信息,但答案仍然对解决问题有很大帮助。

DECLARE @BeginDate Date = '3/15/2015'
DECLARE @EndDate Date = '4/1/2015'
DECLARE @MinVoids INT = 5

SELECT d.CreatorFirstName + ' ' + d.CreatorLastName as name
    ,ds.StatusName

FROM [ECITATION].[dbo].[tblDocument] AS d
    JOIN [ARK].[dbo].[DocStatus] AS ds 
    ON  d.DocStatus = ds.StatusNum 

WHERE DateModified BETWEEN @BeginDate AND @EndDate
    AND (ds.StatusName LIKE 'void%')
    AND ((ds.StatusNum BETWEEN 1 AND 20) OR (ds.StatusNum BETWEEN 100 AND 120))
    AND ( SELECT COUNT(*)
        FROM [ECITATION].[dbo].[tblDocument] AS dc
            JOIN [ARK].[dbo].[DocStatus] AS dst 
            ON  dc.DocStatus = dst.StatusNum
        WHERE dc.CreatorUserId = d.CreatorUserId
            AND (dst.StatusName LIKE 'void%')
            AND dc.DateCreated BETWEEN @BeginDate AND @EndDate
            AND ((dst.StatusNum BETWEEN 1 AND 20) OR (dst.StatusNum BETWEEN 100 AND 120))
      ) >= @MinVoids
ORDER BY name
sql-server
  • 1 个回答
  • 133 Views
Martin Hope
Jmaurier
Asked: 2015-06-12 06:09:57 +0800 CST

SQL 列名搜索

  • 6

我正在使用 SQL Server Management Studio。我有一个庞大的数据库,我想搜索可能能够帮助我弄清楚我需要加入的列名称。

有没有一种工具或其他方法可以进行这种搜索?我一直在寻找一种进行列搜索的方法,但找不到。

sql-server
  • 2 个回答
  • 514 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve