попробовать это:
SELECT captain_name,
Sum(finaldiscount) AS tot,
payment_mode
FROM order_master
WHERE payment_mode IN('cash', 'card')
AND captain_name IN (SELECT captain_name
FROM order_master
WHERE payment_mode IN('cash', 'card')
GROUP BY captain_name
HAVING Count(DISTINCT payment_mode) = 2)
GROUP BY captain_name,payment_mode
суб-запрос будет возвращать только й ose captain_name
, которые имеют как payment_mode
, т. е. card
и cash
. затем выберите строки из них captain_name
и group by
по captain_name,payment_mode
.
и если вы не хотите, отдельные строки для card
и cash
затем использовать это:
SELECT captain_name,SUM(finaldiscount)
FROM order_master
WHERE payment_mode IN('cash', 'card')
GROUP BY captain_name
HAVING Count(DISTINCT payment_mode) = 2
Примечание: Я предположил, что two captain should be equal
означает только те капитана, которые возвращаются на оба запроса, должны быть возвращены в сочетании запрос.
Зачем комбинировать тот же запрос? Я не вижу разницы между запросами. –
Оба запроса выглядят одинаково: –
было неправильно отредактировано, в первом запросе была 'payment_mode = 'card''. –