Я хочу получить количество билетов, проданных за каждый способ оплаты за каждое событие. и я последующие запросы:группа не работает правильно соединяет две таблицы
SELECT count(distinct(a.performance_id)) as EventQuantity,
sum(a.admission_count) as TicketQuantity
FROM vw_PrecioTipoZona_Paid as a
WHERE 1 = 1
AND a.performance_id ='DED63133-A099-4949-AA57-13BBE9462BAF'
GROUP BY a.performance_id
и я получаю этот результат, который в норме:
EventQuantity TicketQuantity
1 203
Но когда соединение таблицы с другой стороны, результат является сумма которым, в данном случае a.admission_count
умножается на количество записей в другой таблице.
Запрос, который имеет проблемы заключается в следующем:
SELECT a.performance_id,
count(distinct(a.performance_id)) as EventQuantity,
sum(a.admission_count) as TicketQuantity,
b.payment_method as PaymentMethod
FROM vw_PrecioTipoZona_Paid as a inner join vw_Payment_UserByPerformance as b
on a.performance_id = b.performance_id
WHERE
1 = 1
and a.performance_id ='DED63133-A099-4949-AA57-13BBE9462BAF'
group by a.performance_id, b.payment_method
С помощью этого запроса я получаю этот результат:
EventQuantity TicketQuantity PaymentMethod
1 10353 Cash
1 5887 Card
1 1624 MasterCardECommerce
1 812 VisaEcommece
И этот результат wron, результат должен быть:
EventQuantity TicketQuantity PaymentMethod
1 111 Cash
1 63 Card
1 17 MasterCardECommerce
1 8 VisaEcommece
vw_Payment_UserByPerformance вид структуры i S последующие:
performance_id user_role_id userrole_name userrole_group date_transaction user_id user_name owner_user_id owner_user_name amount_adm_net amount_req_net amount_charge_charge amount_total amount_net chargeTransaction tax payment_method
И vw_PrecioTipoZona_Paid вид структуры является продолжением:
performance_id performance_name performance_start_date date_transaction user_role_id userrole_name userrole_group user_id user_name price_type price_zone price_zone_priority admission_count NET charge1 charge2 charge3 charge4 charge5 GROSS
Должен ли я сделать подзапрос? Где проблема здесь?
Каков ожидаемый результат? Кроме того, какой смысл в 'count (distinct (a.performance_id))', поскольку вы группируете одно поле? –
Было бы полезно перевести все идентификаторы (имена таблиц и столбцов в этом случае) на английский, поэтому мы лучше понимаем семантику вашей таблицы. – pintxo
@GiorgosBetsos Я также хочу узнать количество билетов, проданных за каждый тип оплаты за каждое событие. –