Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- WITH ogt as (
- 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'
- UNION ALL
- 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'
- )
- SELECT UnderpaymentId,
- DateStamp,
- NextOrderDate,
- CASE WHEN datetime_diff(NextOrderDate, DateStamp, MINUTE) <= 30 THEN true ELSE false END m30Minutes,
- CASE WHEN datetime_diff(NextOrderDate, DateStamp, HOUR) <= 24 THEN true ELSE false END m1Day,
- CASE WHEN datetime_diff(NextOrderDate, DateStamp, Day) <= 7 THEN true ELSE false END m7Days,
- CASE WHEN datetime_diff(NextOrderDate, DateStamp, Month) <= 1 THEN true ELSE false END m1Month,
- CASE WHEN datetime_diff(NextOrderDate, DateStamp, Month) <= 3 THEN true ELSE false END m3Month,
- CASE WHEN datetime_diff(NextOrderDate, DateStamp, Month) <= 6 THEN true ELSE false END m6Month,
- CASE WHEN datetime_diff(NextOrderDate, DateStamp, Month) <= 13 THEN true ELSE false END m13Month
- FROM
- (
- SELECT
- t.*
- FROM
- (
- SELECT ogt.*,
- MIN(CASE WHEN IsUnderpayment = false THEN DateStamp ELSE NULL END)
- OVER
- (
- PARTITION BY CustomerId
- ORDER BY DateStamp
- ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
- ) AS NextOrderDate
- FROM ogt
- ) t
- WHERE IsUnderpayment = true
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement