Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/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_Sql Server - Fatal编程技术网

SQL Server中其他表的累计周期总和

SQL Server中其他表的累计周期总和,sql,sql-server,Sql,Sql Server,我有下面的表格 Product Qty Date A 100 01/01/2017 A 100 03/01/2017 A 200 04/01/2017 A 100 05/01/2017 B 100 07/01/2017 B 50 08/01/2017 B 200 10/01/2017 B 100 17/01/2017 C

我有下面的表格

Product Qty    Date         
A       100    01/01/2017
A       100    03/01/2017
A       200    04/01/2017 
A       100    05/01/2017
B       100    07/01/2017
B        50    08/01/2017
B       200    10/01/2017
B       100    17/01/2017
C       100    20/01/2017
C       300    21/01/2017
C       150    24/01/2017
我有桌子的交货日期

Period    Month   startdate   enddate     deliverydate
Period1   Jan     01/01/2017  15/01/2017  17/01/2017
Period2   Jan     16/01/2017  31/01/2017  04/02/2017
我想要这样的结果

Product TotalQty    DeliveryDate
A       500         17/01/2017
B       350         17/01/2017
B       100         04/02/2017
C       550         04/02/2017
我不知道如何创建查询以获得该结果。 你们能帮我吗

谢谢你可以试试这个

DECLARE @Transaction AS TABLE (Product varchar(10), Qty int, [Date] date)
INSERT INTO @Transaction
VALUES ('A', 100, '2017-01-01'), ('A', 100, '2017-01-03'), ('A', 200, '2017-01-04'), ('A', 100, '2017-01-05'),
('B', 100, '2017-01-07'),('B', 50, '2017-01-08'),('B', 200, '2017-01-10'),('B', 100, '2017-01-17'),
('C', 100, '2017-01-20'),('C', 300, '2017-01-21'),('C', 150, '2017-01-24')


DECLARE @Delivery AS TABLE (startdate date, enddate date, deliverydate date)
INSERT INTO @Delivery VALUES ('2017-01-01', '2017-01-15', '2017-01-17'), ('2017-01-16', '2017-01-31', '2017-02-04')


SELECT t.Product,SUM(t.Qty) AS TotalQty , d.DeliveryDate  
FROM @Transaction t
INNER JOIN @Delivery d ON t.[Date] >= d.startdate AND t.[Date] <= d.enddate
GROUP BY t.Product,d.DeliveryDate
将@Transaction声明为表(产品varchar(10),数量int,[日期]日期)
插入@Transaction
价值('A',100',2017-01-01'),('A',100',2017-01-03'),('A',200',2017-01-04'),('A',100',2017-01-05'),
('B',100',2017-01-07'),('B',50',2017-01-08'),('B',200',2017-01-10'),('B',100',2017-01-17'),
('C',100,'2017-01-20'),('C',300,'2017-01-21'),('C',150,'2017-01-24'))
将@Delivery声明为表(startdate日期、enddate日期、deliverydate日期)
插入@Delivery VALUES('2017-01-01','2017-01-15','2017-01-17'),('2017-01-16','2017-01-31','2017-02-04'))
选择t.产品,总和(t.数量)作为总数量,d.交货日期
来自@Transaction t

内部连接@Delivery d ON t.[Date]>=d.startdate和t.[Date]您试过什么吗?例如,决定哪个事务属于哪个DeliveryDate的查询?说到哪个,您至少应该尝试解释如何构造结果;(为我们)写下来可能会帮助你更好地理解你的问题。谢谢你,现在我明白了