简体   繁体   English

如何从上次日期选择上一个星期的数据

[英]How to select last one week data from last date

I want sum of price in my table depended by 'CorpCode' from other table where 'InvoiceDate' between last week from Max(InvoiceDate)LastInvoiceDate 我想要我的表中的价格总和取决于其他表中的“ CorpCode”,其中上周之间的“ InvoiceDate”来自Max(InvoiceDate)LastInvoiceDate

My table design is: 我的表设计是:

T1:
    CorpCode  AuthorNo
      C1         A23
      C1         A24
      C1         A25
      C1         A27
      C2         A30
      C2         A43
      C2         A55
      C3         A65
      C3         A66
      C3         A78
T2:
     AuthorNo   Price  InvoiceDate
       A23       145    2019-08-01
       A24       132    2019-08-02
       A25       140    2019-08-10
       A27       125    2019-08-14
       A30       115    2019-08-19
       A43       110    2019-08-21
       A55       100    2019-08-25
       A65       111    2019-09-23
       A66       133    2019-09-12
       A78       54     2019-09-10
Result:
     CorpCode    SumPrice
        C1          265
        C2          325
        C3          111

Check this below option- 选中以下选项-

You can check DEMO HERE 您可以在此处检查演示

SELECT A.CorpCode,SUM(C.Price) SumPrice
FROM
(
    SELECT T1.CorpCode, DATEADD(DD,-7,MAX(InvoiceDate)) MX_DATE
    -- I have deduct 7 days for a week. 
    -- But check what you exactly need.
    FROM T1 INNER JOIN T2 ON T1.AuthorNo = T2.AuthorNo
    GROUP BY T1.CorpCode
)A
INNER JOIN T1 B ON A.CorpCode = B.CorpCode
INNER JOIN T2 C ON B.AuthorNo = C.AuthorNo AND C.InvoiceDate >= A.MX_DATE
GROUP BY A.CorpCode

Output is- 输出是-

CorpCode    SumPrice
C1          265
C2          325
C3          111

You can do that in multiple ways. 您可以通过多种方式做到这一点。 ie: 即:

with t (CorpCode, Price, days) as
(
select t1.CorpCode, t2.Price,  
  datediff(d, invoiceDate, 
  max(InvoiceDate) over (Partition by t1.CorpCode))
from t1 
inner join t2 on t1.AuthorNo = t2.AuthorNo
)
select CorpCode, Sum(Price) as TotPrice
from t
where days <= 7
group by CorpCode;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM