小编moh*_*111的帖子

如何计算未在目标日期运行的天数

我有这样的示例数据:

DECLARE @T Table (ID INT, Name VARCHAR(10), DOB DATE)

INSERT INTO @T (ID,Name,DOB) VALUES (1,'Mohan','2016-11-11')
INSERT INTO @T (ID,Name,DOB) VALUES (2,'Raj','2016-11-07')
INSERT INTO @T (ID,Name,DOB) VALUES (3,'Manny','2016-10-30')
INSERT INTO @T (ID,Name,DOB) VALUES (4,'kamal','2016-11-01')
INSERT INTO @T (ID,Name,DOB) VALUES (5,'Raj','2016-11-08')
INSERT INTO @T (ID,Name,DOB) VALUES (6,'Manasa','2016-11-10')
Run Code Online (Sandbox Code Playgroud)

我的问题是我周日在这张桌子上运行查询(即2016年11月6日)

例如 :

Select Count(*), Cnt  
from @T      /* how to write logic for missing days */
Run Code Online (Sandbox Code Playgroud)

我的输出:

Cnt   Days
6    0 Days 
Run Code Online (Sandbox Code Playgroud)

当我在周四(即2016年11月6日)运行它时也是如此

Cnt   Days
6     4 Days
Run Code Online (Sandbox Code Playgroud)

我怎么需要得到这个.如果它在星期六运行,它将在每个星期日运行它应该显示6天和星期日到星期日计算.

请提出一些做法的方法 - 我无法继续前进

sql t-sql sql-server

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

更新记录是插入历史表而不是旧记录

我有两个表Test和TestHistory

CREATE TABLE [dbo].[TEST](
    [ID] [int] NULL,
    [Name] [varchar](10) NULL,
    [Status] [char](1) NULL,
    [CreatedDate] [datetime] NULL
) ON [PRIMARY]

GO

CREATE TABLE [dbo].[Test_History](
    [ID] [int] NULL,
    [Name] [varchar](10) NULL,
    [Status] [char](1) NULL,
    [CreatedDate] [datetime] NULL
) ON [PRIMARY]

GO

INSERT INTO TEST ([ID],[Name],[Status],[CreatedDate])values (1,'Mohan','A',GETDATE())
Run Code Online (Sandbox Code Playgroud)

创建的触发器:

ALTER TRIGGER [dbo].[trg_Test] 
     ON [dbo].[TEST]
     FOR UPDATE 
     AS

     Declare @ID INT;
     Declare @Name varchar(10);
     Declare @Status CHAR(2);
     Declare @CreatedDate DATETIME;


     Select @ID = I.ID from INSERTED I
     Select @Name = I.Name from INSERTED I
     Select …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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

如何在多个表中获取日期的最大日期值列

例如,我在数据库中有2个表.例:表T:

declare @t table (name varchar(20),DOB date)
Insert into @t (name,DOB) values ('Mohan','2001-07-19')
Insert into @t (name,DOB) values ('Minu','1998-06-19')
Run Code Online (Sandbox Code Playgroud)

表:TT

declare @tt table (name varchar(20),DOB date)
Insert into @tt (name,DOB) values ('Raju','2010-07-19')
Insert into @tt (name,DOB) values ('Rani','2001-06-19')
Run Code Online (Sandbox Code Playgroud)

现在我有一个Query来获取基于Date类型过滤器的多个表的表名和列名.

SELECT   C.TABLE_SCHEMA, c.TABLE_NAME,c.COLUMN_NAME
FROM     INFORMATION_SCHEMA.COLUMNS c 
         JOIN sys.objects o ON o.name = c.TABLE_NAME   
WHERE    o.type = 'U' AND C.DATA_TYPE = 'Datetime'
Run Code Online (Sandbox Code Playgroud)

输出:

T_Schema    T_name T_column
  dbo         T      DOB   
  dbo         TT     DOB
Run Code Online (Sandbox Code Playgroud)

但是如何获得两个表的最大日期,如下面的输出:

  T_Schema  T_name T_column  Max_dt
  dbo         T      DOB     2001-07-19
  dbo …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

重新选择所选表的标识值

如何基于他们的最后一次计数重新选择.我已经根据最后一次计数写了一个查询来重新设置.但是一次如何做10个表.

declare @last int
select @last=max(empid) from Table_1
DBCC CHECKIDENT (Table_1, RESEED, @last)
Run Code Online (Sandbox Code Playgroud)

但如何处理超过10个表或更多表...根据最后一次计数一次性重新播种

t-sql sql-server

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

如何使用Joins或Cross应用获取数据

我有要求

样本数据:表A:

ID  name
1   cat
2   Dog
3   Bird
Run Code Online (Sandbox Code Playgroud)

表B:

ID  name
1   aaa
1   bbb
2   ccc
2   ddd
Run Code Online (Sandbox Code Playgroud)

表C:

ID  name
1   xxx
1   yyy
1   zzz
2   www
Run Code Online (Sandbox Code Playgroud)

要求输出:

ID  name    name    name
1   cat aaa xxx
1   cat bbb yyy
1   cat null    zzz
2   Dog ccc www
2   Dog ddd www
3   Bird    NULL    NULL
Run Code Online (Sandbox Code Playgroud)

我尝试过不同的连接

Select a.ID,a.name,b.name,c.name from @A a
full join @b b
on   a.ID = b.ID 
full join @c c
on …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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

有没有办法在sql语句中选择*时从列名中删除'_'?

我的表格中包含所有列名称(有超过80列,我现在无法更改列名称),格式为"_".像First_Name,Last_Name,...

所以我想使用select * from table而不是使用AS.

我想通过在一个语句中删除"_"来选择它们.无论如何我能做到吗?Replace(coulmnName, '_','')在select语句中的东西?

谢谢

sql sql-server

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

如何在SQL SERVER中按名称分组Total

我有这样的表

DECLARE @T Table 
(
  EmployeDesc VARCHAR(20),
  Empname Varchar(50),
  headOffice INT,
  SubOffice INT
);
Run Code Online (Sandbox Code Playgroud)

样本数据

INSERT INTO @T(EmployeDesc, Empname, headOffice, SubOffice) VALUES 
('Sale','Rob',2,3),
('Discount','Rob',6,10),
('Sale','BOB',2,3),
('Discount','BOB',2,3);
Run Code Online (Sandbox Code Playgroud)

我们如何在SQL服务器中实现这一点

EmployeDesc Empname headOffice  SubOffice

Sale        Rob         2          3
Discount    Rob         6         10
  **Rob Total**         8         13
Sale        BOB         2          3
Discount    BOB         2          3
  **BOB Total**         4          6
Run Code Online (Sandbox Code Playgroud)

我们可以使用UNION ALL或运行总计,但有没有其他方法可以做到这一点.

任何人都可以建议我

sql t-sql sql-server reporting-services

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

如何删除MYSQL中的第一个特殊字符

我有样本数据

+----+-----------+
| Id | Name      |
+----+-----------+
|  1 | $John     |
|  2 | $Carol    |
|  3 | $Mike     | 
|  4 | $Sam      |
|  5 | $David$Mohan$ |
|  6 | Robert$Ram$   |  
|  8 | Maxwell$ |
+----+-----------+
Run Code Online (Sandbox Code Playgroud)

我需要删除唯一的 $ 第一个字符

需要输出:

+----+-----------+
| Id | Name      |
+----+-----------+
|  1 | John     |
|  2 | Carol    |
|  3 | Mike     | 
|  4 | Sam      |
|  5 | David$Mohan$ | …
Run Code Online (Sandbox Code Playgroud)

mysql sql

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

为什么我只能使用BizTalk来处理HL7消息

为什么我们需要使用BizTalk来处理HL7消息?有没有其他选择而不是BizTalk?

我需要确切的原因,我们只需要选择退出BizTalk ......还有其他方法来处理HL7消息吗?

biztalk biztalk-2010

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