我有两个表。如下图所示:Ticket
和TicketBasket
。
我想选择这样的图例:
| tId | tDate | customerName | expDate | 税收 | 全部 |
| 1 | XXX | XXX | XXX | 2 | 25 |
| 2 | XXX | XXX | XXX | 2 | 20 |
| 3 | XXX | XXX | XXX | 2 | 15 |
由于我的sql命令,结果与tId迭代,因为每个Ticket可以在它的篮子中有多个Items。
我的SQL代码:
如何用另一个表中的多行进行分组
SELECT distinct Ticket.tId,dbo.ToCustomeDate(Ticket.tDate) 'tDate',
Ticket.customerName,dbo.ToCustomeDate(isnull(Ticket.expDate,Ticket.tDate)) 'expDate',
Ticket.tax,
(
(((TicketBasket.gamePrice*TicketBasket.gameCount)-
(((TicketBasket.gamePrice * TicketBasket.gameCount)*TicketBasket.offPrice)/100))+
(((TicketBasket.gamePrice * TicketBasket.gameCount)-
(((TicketBasket.gamePrice * TicketBasket.gameCount)*TicketBasket.offPrice)/100))* (Ticket.tax)/100))
) AS total
FROM Ticket right JOIN TicketBasket
ON Ticket.tId = TicketBasket.tId
但结果是
| tId | tDate | customerName | expDate | 税收 | 全部 |
| 1 | XXX | XXX | XXX | 2 | 10 |
| 1 | XXX | XXX | XXX | 2 | 10 |
| 1 | XXX | XXX | XXX | 2 | 5 |
| 2 | XXX | XXX | XXX | 2 | 10 |
| 2 | XXX | XXX | XXX | 2 | 10 |
| 3 | XXX | XXX | XXX | 2 | 10 |
| 3 | XXX | XXX | XXX | 2 | 5 |
我可以用cursor
来处理这个问题,但是我知道执行select查询会带来很大负担,所以感谢其他解决方案。
是它的工作以及 –