Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server:如果介于_Sql Server_Tsql - Fatal编程技术网

Sql server SQL Server:如果介于

Sql server SQL Server:如果介于,sql-server,tsql,Sql Server,Tsql,我有两张桌子: 查询1:包含3列,到期日、收到日、差异 其中Diff是以天为单位的两个日期的差值 具有2列、日期、计数的查询醇 这有一个日期列表,所有日期的计数都设置为1。所有这些日期都代表公共假日 如果QueryHol[Date]介于Query1[Due_Date]和Query1[Received_Date]之间,我希望能够获得QueryHol[Count]的总和 需要结果:在Query1上加入一个列,说明有多少公共假日属于日期范围,以便可以从Query1[Diff]列中减去它们,以反映工作日

我有两张桌子:

查询1:包含3列,到期日、收到日、差异 其中Diff是以天为单位的两个日期的差值

具有2列、日期、计数的查询醇

这有一个日期列表,所有日期的计数都设置为1。所有这些日期都代表公共假日

如果QueryHol[Date]介于Query1[Due_Date]和Query1[Received_Date]之间,我希望能够获得QueryHol[Count]的总和

需要结果:在Query1上加入一个列,说明有多少公共假日属于日期范围,以便可以从Query1[Diff]列中减去它们,以反映工作日

因为01-01-19是一个银行假日,所以我想从差异中减去它,得到如下结果

如果您需要更多信息,请告诉我。

这里有一个选项:

SELECT query1.due_date
, query1.received_date
, query1.diff
, queryhol.count
, COALESCE(query1.diff - queryhol.count, query1.diff) as DiffCount

FROM Query1

OUTER APPLY(
 SELECT COUNT(*) AS count
 FROM QueryHol
  WHERE QueryHol.Date <= Query1.Received_Date
  AND QueryHol.Date >= Query1.Due_Date
) AS queryhol

您可能需要处理连接条件-因为它假设接收日期总是晚于到期日期,因此没有足够的数据来了解所有用例。

如果我了解您的问题,我认为这是一个可能的解决方案:

select due_date,
       receive_date,
       diff,
       (select sum(table2.count)
          from table2
         where table2.due_date between table1.due_date and table1.due_date) sum_holi,
       table1.diff - (select sum(table2.count)
          from table2
         where table2.date between table1.due_date and table2.due_date) diff_holi
  from table1
 where [...] --here your conditions over table1.

这里的大多数人都希望样本表数据和预期结果是格式化文本,而不是图像。您能详细说明格式化文本的含义吗?复制并粘贴到问题中,然后格式化为代码的文本。我们不能用图像做任何事情。有关不应使用图像发布代码的许多原因的列表,请参阅。嗨,Nokin,我得到了Table2.count的错误。无法绑定计数?很抱歉,示例中有两个错误:第一个子选择…where Table2.due_date…,正确的是…where Table2.date。。;。第二个子选择…和表2.到期日..,正确的是…和表1.到期日。。。。如果你需要更多的帮助,请提出你的问题。嗨,科尔,这很好用。安倍也适应了更多的计算。谢谢