Lisanas Ответов: 2

Сумма наличных и чек со стола


мне нужно получить сумму наличных денег и сумму чека из таблицы в 2 столбца заказ от продавца моя таблица выглядит следующим образом
Salesman A	Cash	21151.75
Salesman B	Cash	34510.51
Salesman C	Cash	21252
Salesman D	Cash	13356
Salesman A	Cheque	13944
Salesman B	Cheque	87368.5
Salesman C	Cheque	20182
Salesman D	Cash	23862.05

и мне нужно получить такой результат
Salesman	Cash	   Cheque
Salesman A	21151.75   13944
Salesman B	34510.51   87368.5
Salesman C	21252	   20182
Salesman D	13356	   23862.05
пожалуйста, помогите.. заранее спасибо

Что я уже пробовал:

SELECT Ca.Cash,  Cr.Credit FROM 
	(SELECT Salesman, PayMode, SUM(Collection) AS Cash
		FROM Prospect_Detail WHERE(Purpose = 'Collections') AND (PayMode = 'Cash')
		GROUP BY Salesman, PayMode) AS Ca 
		CROSS JOIN
	(SELECT Salesman, PayMode, SUM(Collection) AS Credit
        FROM Prospect_Detail WHERE(Purpose = 'Collections') AND (PayMode = 'cheque')
        GROUP BY Salesman, PayMode) Cr

Santosh kumar Pithani

У вас есть какой-нибудь столбец первичного ключа ? ваш запрос неверен, он возвращает M*N записей

2 Ответов

Рейтинг:
12

Lisanas

ваша ссылка очень полезна.. спасибо

Patrice T

всегда пожалуйста.

Рейтинг:
0

Santosh kumar Pithani

SELECT 
   Salesman
  ,PayMode
  ,SUM(CASE WHEN PayMode = 'Cash' THEN Collection ELSE 0 END) AS Cash
  ,SUM(CASE WHEN PayMode = 'cheque' THEN Collection ELSE 0 END) AS cheque
FROM Prospect_Detail 
   WHERE (Purpose = 'Collections' AND PayMode IN('Cash','cheque'))
		GROUP BY Salesman,PayMode;


Lisanas

ВЫБИРАТЬ
Продавец
,Сумма(случай, когда PayMode = 'наличными' после сбора, иначе 0 конец) как наличными
,SUM(CASE WHEN PayMode = 'Check' THEN Collection ELSE 0 END) AS Check
Из Prospect_Detail
Где (цель = 'коллекции' )
Группа по продавцу;
это даст мне желаемый результат.. спасибо

Santosh kumar Pithani

Добро пожаловать