Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. WITH ogt as (
  2. SELECT datetime(Created) as DateStamp, Id as UnderpaymentId, CustomerId, OrderlineId, true as IsUnderpayment FROM `transactional_raw_parcel2go.underpayments` WHERE Created > '2017-01-01 00:00:00'
  3. UNION ALL
  4. SELECT datetime(PaidDate) as DateStamp, NULL as UnderpaymentId, CustomerId, OrderlineId, false as IsUnderpayment FROM `transactional_parcel2go.orderlines` WHERE PaidDate > '2017-01-01 00:00:00'
  5. )
  6.  
  7. SELECT UnderpaymentId,
  8. DateStamp,
  9. NextOrderDate,
  10. CASE WHEN datetime_diff(NextOrderDate, DateStamp, MINUTE) <= 30 THEN true ELSE false END m30Minutes,
  11. CASE WHEN datetime_diff(NextOrderDate, DateStamp, HOUR) <= 24 THEN true ELSE false END m1Day,
  12. CASE WHEN datetime_diff(NextOrderDate, DateStamp, Day) <= 7 THEN true ELSE false END m7Days,
  13. CASE WHEN datetime_diff(NextOrderDate, DateStamp, Month) <= 1 THEN true ELSE false END m1Month,
  14. CASE WHEN datetime_diff(NextOrderDate, DateStamp, Month) <= 3 THEN true ELSE false END m3Month,
  15. CASE WHEN datetime_diff(NextOrderDate, DateStamp, Month) <= 6 THEN true ELSE false END m6Month,
  16. CASE WHEN datetime_diff(NextOrderDate, DateStamp, Month) <= 13 THEN true ELSE false END m13Month
  17. FROM
  18. (
  19.  
  20. SELECT
  21. t.*
  22. FROM
  23. (
  24. SELECT ogt.*,
  25. MIN(CASE WHEN IsUnderpayment = false THEN DateStamp ELSE NULL END)
  26. OVER
  27. (
  28. PARTITION BY CustomerId
  29. ORDER BY DateStamp
  30. ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
  31. ) AS NextOrderDate
  32. FROM ogt
  33. ) t
  34. WHERE IsUnderpayment = true
  35. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement