【发布时间】:2012-03-14 08:20:59
【问题描述】:
我正在查看门票销售数据。我需要查看对至少一张票应用了折扣的所有交易中的票。每笔交易只允许一个折扣,但多张门票可能有该折扣。 (例如,AAA 折扣最多可应用于 4 张成人票,但可以购买更多票。我需要使用 AAA 折扣时购买的所有票的数据。)
最终用户将通过 Excel 访问视图中的数据,然后根据折扣类型和日期进行透视和切片。在创建视图时,如何将一个票行中的折扣代码应用于交易中的所有票?
SELECT
JnlTickets.TransNo,
JnlHeaders.FiscalDate,
JnlTickets.DiscNo AS DiscountNumber,
LEFT(JnlHeaders.agency,1) AS Agency,
Discounts.Name
FROM dbo.JnlHeaders (nolock)
LEFT JOIN dbo.JnlTickets (nolock)
ON dbo.JnlHeaders.TranNo=dbo.JnlTickets.TransNo
LEFT JOIN dbo.Discounts (nolock)
ON dbo.JnlTickets.DiscNo=dbo.DISCOUNTS.DiscountID
GROUP BY JnlTickets.TransNo,
JnlTickets.DiscNo,
JnlHeaders.FiscalDate,
LEFT(JnlHeaders.agency,1),
Jnltickets.coupons,
Discounts.Name
HAVING(JnlHeaders.FiscalDate BETWEEN '2012-03-07' AND '2012-03-08')
AND
(Jnltickets.transno IN (SELECT JnlTickets.TransNo
FROM JnlTickets
WHERE JnlTickets.DiscNo > '1'));
【问题讨论】: