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-60131

Tufan Chand's questions

Martin Hope
Tufan Chand
Asked: 2017-03-28 07:58:04 +0800 CST

在sql server中更新大表中的行

  • 0

我想更新一个有 83,423,460 行并且还在增长的大表。

以下查询需要 8 分钟才能成功执行:

 UPDATE FPP_Invoice_Revenue
 SET    Till_Prev_Inv_Amt = Till_Prev_Inv_Amt_In_USD / 0.0285714286,
        Cur_Inv_Amt = Cur_Inv_Amt_In_USD / 0.0285714286,
        YTD_Inv_Amt = YTD_Inv_Amt_In_USD / 0.0285714286
 WHERE  SOW_Number = '20014378'

存在一个clustered index。我想在更新之前禁用该索引,并在更新后再次重建,但这也不起作用,因为重建需要很多时间。

我在某处读过这可以通过分成小部分来实现,但是如何划分上述查询?

DDL:

CREATE TABLE [dbo].[FPP_Invoice_Revenue](
[Project_Code] [varchar](10) NOT NULL,
[Project_Desc] [varchar](50) NULL,
[SOW_Number] [varchar](10) NOT NULL,
[SOW_Desc] [varchar](50) NULL,
[Invoice_No] [varchar](50) NOT NULL,
[Inv_Month] [int] NOT NULL,
[Inv_Year] [int] NOT NULL,
[Billing_Date] [smalldatetime] NULL,
[Doc_Currency] [varchar](10) NULL,
[Vertical] [varchar](255) NULL,
[Till_Prev_Inv_Amt] [numeric](24, 10) NULL,
[Cur_Inv_Amt] [numeric](24, 10) NULL,
[YTD_Inv_Amt] [numeric](24, 10) NULL,
[Till_Prev_Inv_Amt_In_USD] [numeric](24, 10) NULL,
[Cur_Inv_Amt_In_USD] [numeric](24, 10) NULL,
[YTD_Inv_Amt_In_USD] [numeric](24, 10) NULL,
CONSTRAINT [PK_FPP_Invoice_Revenue] PRIMARY KEY CLUSTERED 
(
[Project_Code] ASC,
[SOW_Number] ASC,
[Invoice_No] ASC,
[Inv_Month] ASC,
[Inv_Year] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,       
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]
GO

SET ANSI_PADDING OFF
GO

执行计划:

在此处输入图像描述

sql-server performance
  • 3 个回答
  • 25829 Views
Martin Hope
Tufan Chand
Asked: 2017-01-21 05:25:14 +0800 CST

在sqlserver中按月计算日期差异

  • 1

我正在使用 SQL 服务器。我想按月计算确切的日期差异。我知道为此有一个内置函数DATEDIFF,但我想要一些自定义小数差异,例如:

sDate(yyyy-MM-dd)  eDate          output              formula
---------------------------------------------------------------------------------------------------------------
2016-03-03        2016-03-05      0.0967741           3.00/31.00 (daycount/lastday of the month)
2016-03-05        2016-06-05      3.0376343          (27.00/31.00)+(30.00/30.00)+(31.00/31.00)+(5.00/30.00)
2016-02-26        2016-04-03      1.2379310          (4.00/29.00)+(31.00/31.00)+(3.00/30.00)

那么这将如何计算呢?我可以通过使用函数来应用此逻辑,但我不想这样做。如何在单个查询中应用此逻辑?

您的宝贵建议将不胜感激。

sql-server functions
  • 3 个回答
  • 1142 Views
Martin Hope
Tufan Chand
Asked: 2015-08-28 04:51:51 +0800 CST

在 SQL Server 中加入逗号分隔值

  • 6

我有一张桌子[CourseMaster]喜欢

CourseId    CourseName
-----------------------
  01          ABC
  02          DEF
  03          GHI
  04          JKL
  05          MNO
  06          PQR
  07          STU

我还有一张[StudentMaster]学生详细信息表

ROLLNO  NAME    ADDRESS          Course
------------------------------------------------
12345   RAM     RAM ADDRESS      01,02,06                      
25695   HARI    HARI ADDRESS     02,06                         
89685   JEFF    JEFF ADDRESS     03,05,06,07                   
47896   DAISY   DAISY ADDRESS    03         

在这里,我想使用CourseName(Not CourseId) 获取学生详细信息。

如果 in 中的值Course不是逗号分隔的,那么query使用 join 获取详细信息将非常简单。

据我所知,我可以运行两个queries以获得我想要的相同结果,一个查询用于从[StudentMaster]前端获取学生的详细信息。另一个仅通过循环对应来获取CourseNamefrom 。[CourseMaster]CourseId

但事实上我只想要一个结果query而不是queries为这个小任务写两个。

我想这是 100% 可能的。我的预期结果将如下所示:

ROLLNO  NAME    ADDRESS         Course
-------------------------------------------
12345   RAM     RAM ADDRESS     ABC,DEF,PQR                   
25695   HARI    HARI ADDRESS    DEF,PQR                       
89685   JEFF    JEFF ADDRESS    GHI,MNO,PQR,STU               
47896   DAISY   DAISY ADDRESS   GHI                 

谢谢您,任何有价值的建议将不胜感激。

sql-server join
  • 4 个回答
  • 57257 Views
Martin Hope
Tufan Chand
Asked: 2015-07-14 23:21:01 +0800 CST

在 SQLServer 中使用游标自动递增一个值

  • 0

我正在开发一个员工休假管理系统,并且

我的数据表结构是:

+-----------+---------+----------+----------+------------+--------------+
|   EmpID   |   CL    |     PL   | ISActive | LastUpdate |  NextUpdate  |
+-----------+---------+----------+----------+------------+--------------+
|   E001    |   5     |     3    |    1     | 2015-01-01 |  2015-02-01  |
+-----------+---------+----------+----------+------------+--------------+
|   E002    |   3     |     7    |    1     | 2015-01-01 |  2015-02-01  |
+-----------+---------+----------+----------+------------+--------------+
|   E003    |   0     |     1    |    1     | 2015-01-01 |  2015-02-01  |
+-----------+---------+----------+----------+------------+--------------+
|   E004    |   5     |     1    |    0     | 2015-01-01 |  2015-02-01  |
+-----------+---------+----------+----------+------------+--------------+

我希望每个在职员工CL在每个月的 1日自动获得 2 个,SL每 45 天自动获得 1 个。有人告诉我可以使用 a 来做到这一点cursor,但我不知道。

还有其他有效的方法吗?

sql-server auto-increment
  • 3 个回答
  • 1392 Views
Martin Hope
Tufan Chand
Asked: 2015-04-25 04:59:20 +0800 CST

基于SQL Server中table1中的单行从table2中检索多行[重复]

  • 1
这个问题在这里已经有了答案:
在单个结果中连接一对多字段? (1 个回答)
7年前关闭。

我有两个表,我正在使用 SQL Server。

表1结构是

Campiagn_Id  Campiagn_Name 
1            test1
2            test2
3            test3

和 table2 结构是

Campign_Id  EmalList
1           email_list_1
1           email_list_2
3           email_list_3
1           email_list_4
2           email_list_5
2           email_list_6
3           email_list_7
1           email_list_8

现在我想从一个查询中获取所有 Campiagn_Id 和 Campiagn_Nametable1以及所有相应的 from 。EmalListtable2

我的结果将如下所示

Campign_Id   Campiagn_Name    EmailList 
1            test1            email_list_1,email_list_2,email_list_4,email_list_8
2            test2            email_list_5,email_list_6
3            test3            email_list_3,email_list_7

或者任何其他建议的输出都可以

我想我的问题对你们所有人来说都很清楚。

sql-server join
  • 1 个回答
  • 13706 Views
Martin Hope
Tufan Chand
Asked: 2015-04-24 04:45:10 +0800 CST

连接两个表并在单个查询中返回数据和计数

  • 6

我在 SQL Server 数据库中有两张表,一张有两列,一张有四列:

  1. tbl_email_list

    1. email_list_id int(PK)
    2. email_list_name varchar
  2. tbl_email-details

    1. email_uniq_id int(PK)
    2. email_list_id int(FK)
    3. email_address varchar
    4. blacklist bit

我想在一个应该返回的查询中检索数据

  1. tbl_email_list 中的所有电子邮件列表;
  2. 与特定 email_list_id 关联的 email_address 总数;
  3. 列入白名单的电子邮件地址总数(其中 blacklist=0);
  4. 列入黑名单的电子邮件地址总数(其中 blacklist=1)。
sql-server join
  • 2 个回答
  • 67721 Views
Martin Hope
Tufan Chand
Asked: 2015-02-24 21:35:37 +0800 CST

具有空值的两行合并为没有空值的一行

  • 6

我已经从这样的表中获取了记录:

Name                 Opp                     Bid                  Pro
----------------------------------------------------------------------
Admin                 2                      NULL                 NULL
Pragnya Sonal         7                      NULL                 NULL
Priyanka Debnath      17                     NULL                 NULL
Sanjeev Sasmal        2                      NULL                 NULL
Subrajeet Sahoo       1                      NULL                 NULL
Pragnya Sonal         NULL                   2                    NULL
Pragnya Sonal         NULL                   NULL                 1

但我想以这种格式重新排序这个表:

Admin                 2                      NULL                 NULL
Pragnya Sonal         7                      2                    1
Priyanka Debnath      17                     NULL                 NULL
Sanjeev Sasmal        2                      NULL                 NULL
Subrajeet Sahoo       1                      NULL                 NULL

谁能帮我解决这个问题,非常感谢您

sql-server
  • 2 个回答
  • 40658 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