V_PROGRAMEVENT_TICKETCOUNTS
Fields
Field | Field Type | Null | Description |
---|---|---|---|
ID | uniqueidentifier | ||
PROGRAMID | uniqueidentifier | yes | |
SOLD | decimal(38, 4) | yes | |
REFUNDED | int | ||
INORDER | decimal(38, 4) | ||
INUSE | decimal(38, 4) | yes | |
AVAILABILITY | decimal(38, 4) | yes | |
RESERVED | decimal(38, 4) | ||
CONFIRMEDORFINALIZED | decimal(38, 4) | ||
CANCELLED | int |
Definition
Copy
CREATE view dbo.V_PROGRAMEVENT_TICKETCOUNTS as
with TICKETSREFUNDEDANDCANCELLED_CTE as (
select
EVENTID,
count(case when ISREFUNDED = 1 then 1 else null end) as REFUNDED,
count(case when STATUSCODE = 2 then 1 else null end) as CANCELLED
from
dbo.TICKET
where
EVENTID is not null
group by
EVENTID
),
TICKETCOUNTS_CTE as (
select
SALESORDERITEMTICKET.EVENTID,
sum(case when SALESORDER.STATUSCODE = 1 then SALESORDERITEM.QUANTITY else 0 end) as SOLD,
sum(
case
when SALESORDER.STATUSCODE not in (1, 5) /* Complete, Cancelled */ and (SALESORDER.STATUSCODE = 7 /* Unresolved */ or SALESORDERRESERVEDITEM.ID is null) then
SALESORDERITEM.QUANTITY
else
0
end
) as INORDER,
sum(case when SALESORDER.STATUSCODE = 6 then SALESORDERITEM.QUANTITY else 0 end) as RESERVED,
sum(case when SALESORDER.STATUSCODE in (3,4) then SALESORDERITEM.QUANTITY else 0 end) as CONFIRMEDORFINALIZED
from
dbo.SALESORDERITEMTICKET
inner join
dbo.SALESORDERITEM on SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
inner join
dbo.SALESORDER on SALESORDER.ID = SALESORDERITEM.SALESORDERID
left outer join
dbo.SALESORDERRESERVEDITEM on SALESORDERRESERVEDITEM.ID = SALESORDERITEMTICKET.ID and SALESORDERRESERVEDITEM.EXPIRATIONDATE <= getdate()
group by
SALESORDERITEMTICKET.EVENTID
)
select
EVENT.ID,
EVENT.PROGRAMID,
isnull(TICKETCOUNTS_CTE.SOLD, 0) - isnull(TICKETSREFUNDEDANDCANCELLED_CTE.CANCELLED, 0) as SOLD,
isnull(TICKETSREFUNDEDANDCANCELLED_CTE.REFUNDED, 0) as REFUNDED,
isnull(TICKETCOUNTS_CTE.INORDER, 0) as INORDER,
(isnull(TICKETCOUNTS_CTE.SOLD, 0) + isnull(TICKETCOUNTS_CTE.INORDER, 0) - isnull(TICKETSREFUNDEDANDCANCELLED_CTE.CANCELLED, 0)) as INUSE,
(EVENT.CAPACITY - isnull(TICKETCOUNTS_CTE.SOLD, 0) + isnull(TICKETSREFUNDEDANDCANCELLED_CTE.CANCELLED, 0) - isnull(TICKETCOUNTS_CTE.INORDER, 0)) as AVAILABILITY,
isnull(TICKETCOUNTS_CTE.RESERVED, 0) as RESERVED,
isnull(TICKETCOUNTS_CTE.CONFIRMEDORFINALIZED, 0) as CONFIRMEDORFINALIZED,
isnull(TICKETSREFUNDEDANDCANCELLED_CTE.CANCELLED, 0) as CANCELLED
from
dbo.EVENT
left outer join
TICKETCOUNTS_CTE on TICKETCOUNTS_CTE.EVENTID = EVENT.ID
left outer join
TICKETSREFUNDEDANDCANCELLED_CTE on TICKETSREFUNDEDANDCANCELLED_CTE.EVENTID = EVENT.ID
where
EVENT.PROGRAMID is not null;