数据根据明细合并后对比判断取值

数据库中有一个数据需要处理,将明细数据中的【购买数量】和【到货数量】根据名称进行汇总,【日期】根据【购买数量】和【到货数量】进行对比判断显示

例如下面的数据源:
1、名称A的总到货数量是130,比2019-11-20的100要大,但是小于2019-11-20和2019-11-25的数量之和300,则结果的日期就等于【2019-11-25】;
1、名称B的总到货数量是180,比2019-11-20的400要小,则结果的日期就等于【2019-11-20】

数据源:
名称 日期 购买数量 到货数量
A 2019-11-20 100 80
A 2019-11-25 200 20
A 2019-11-30 300 30
B 2019-11-20 400 50
B 2019-11-25 500 60
B 2019-11-30 600 70

希望得到的结果是这样的:
名称 日期 购买数量 到货数量
A 2019-11-25 600 130
B 2019-11-20 1500 180

现在的是在明细数据后面增加一个字段进行分批汇总,但是后续判断怎么按照条件显示不知道怎么操作
SUM(PurchaseCount) over(order by Cast(PurchaseShipDate as Date),MaterialCode)

请各位大神赐教

根据您的描述,您需要对明细数据进行分组汇总,然后对比判断并取得相应的日期。对于这个问题,您可以采用以下的SQL语句来解决:

SELECT  
    MaterialCode AS 名称, 
    CASE 
        WHEN SUM(ReceiveCount) > PurchaseCount AND SUM(ReceiveCount) < PurchaseCount + LAG(PurchaseCount, 1, 0) OVER (ORDER BY PurchaseShipDate,MaterialCode) 
        THEN LAG(PurchaseShipDate, 1, NULL) OVER (ORDER BY PurchaseShipDate,MaterialCode) 
            
        WHEN SUM(ReceiveCount) > LAG(PurchaseCount, 1, 0) OVER (ORDER BY PurchaseShipDate,MaterialCode) 
        THEN PurchaseShipDate 
            
        ELSE NULL 
    END AS 日期, 
    SUM(PurchaseCount) AS 购买数量, 
    SUM(ReceiveCount) AS 到货数量 
FROM YourTable 
GROUP BY MaterialCode

这个SQL语句会对您的数据按照名称进行分组汇总,然后根据要求进行对比判断,得到相应的日期。最终结果中包含名称、日期、购买数量和到货数量四个字段。

希望对您有所帮助!