I have no idea if I can even do this.

Ok, there's a schema here.

What I want is two columns; one containing a ticket ID, the other containing the total quantity of that ticket bought by @userId.

So:
Code:
SELECT
	[tblTickets].[id],
	SUM(ticket_quantity)
FROM tblTickets
	LEFT JOIN [tblBasket] ON [tblBasket].[ticket_id] = [tblTickets].[id]
	LEFT JOIN [tblOrders] ON [tblOrders].[id] = [tblBasket].[order_id]
	LEFT JOIN [tblUsers] ON [tblUsers].[id] = [tblOrders].[user_id]
WHERE [tblUsers].[id] = @userId
GROUP BY [tblTickets].[id]
Right, that's the single tickets. Now the bit I'm screwed on.

Tickets can be a part of "Combination Tickets" (see schema). A combination ticket may, for example, consist of 2x ticket A and 3x ticket B.

This sort of knackers my SUM(). I need (in pseudo-code):

The total number of ticket 'X' bought as single tickets
PLUS
The total number of ticket 'X' bought as part of combination tickets (ie; multiply the [quantity of combination tickets bought by @userId that contain a particular ticket] by the [quantity of that ticket in the combination])

Does that make sense?

Err. I've had a bit of a go at just joining all those tables in a way that might work (see below), but... it's completely wrong. I don't even know how to attempt the multiplying bit. Can anyone help me?

Code:
SELECT
[tblTickets].[id],
[tblTickets].[admin_description],
[pastPurchases].[ticketCount]
FROM tblTickets
LEFT JOIN(	
	SELECT
		[tblTickets].[id] AS ticketID,
		[pastCombinations].[combinationHolds],
		SUM([tblBasket].[ticket_quantity]) AS ticketCount
	FROM
		[tblTickets]
		LEFT JOIN [tblBasket] ON [tblBasket].[ticket_id] = [tblTickets].[id]
		LEFT JOIN [tblOrders] ON [tblOrders].[id] = [tblBasket].[order_id]
		LEFT JOIN [tblUsers] ON [tblUsers].[id] = [tblOrders].[user_id]
		LEFT JOIN(
			SELECT	[tblCombinations_Tickets].[quantity] AS [combinationHolds],
				[tblCombinations_Tickets].[combination_id] AS [combinationID]
			FROM [tblTickets]
			LEFT JOIN [tblCombinations_Tickets] ON [tblCombinations_Tickets].[ticket_id] = [tblTickets].[id]
		) AS [pastCombinations] ON [pastCombinations].[combinationID] = [tblTickets].[id]

	WHERE [tblUsers].[id] = 1
	GROUP BY [tblTickets].[id],
	[pastCombinations].[combinationHolds]
) AS pastPurchases ON [pastPurchases].[ticketID] = [tblTickets].[id]