Отображение счетчика с помощью таблицы соединения двух с хранением. - PullRequest
0 голосов
/ 09 мая 2020

У меня есть две таблицы. Одна - это оплата еще одного кластера. Я присоединился к двум таблицам с помощью Store Proceudre. Теперь проблема в том, что мне нужно получить счетчик.

      Alter Procedure [dbo].[JKLL_Get_information_clusterwise_firstlevel_JMSL]
       AS
       Begin
         t1.Payment_ID=t2.ClusterID
        SELECT *,t2.ClusterName
         FROM JKLL_Payment_Upload t1, Cluster t2
        where Payment_Status=1 and Reject_Status=0 and First_Level_Approval_Status=0 
         END
* 1003 Проблема в том, что мне нужно получить счет с помощью Clustername. Например,
            If(ClusterName="Usa")
    select count(Payment_ID) as value =15;

Мне нужно получить счет с помощью PaymentID. Можете ли вы отредактировать код выше Помогите мне ..

1 Ответ

1 голос
/ 09 мая 2020

Вам нужно GROUP, а затем вы можете COUNT то, что вы сгруппировали, например:

SELECT COUNT(t2.ClusterName), t2.ClusterName
FROM JKLL_Payment_Upload t1, Cluster t2
WHERE Payment_Status=1 and Reject_Status=0 and First_Level_Approval_Status=0 
GROUP BY t2.ClusterName

Примечания:

  • Примечание 1: при группировании вы не можете делать а SELECT *.
  • Замечание 2: Я добавил INNER JOIN к вашему оператору для соображений производительности
  • Замечание 3: Я бы начал без хранимой процедуры. Попытайтесь получить SELECT прямо на первом месте

ОБНОВЛЕНИЕ:

Я предполагаю такие таблицы:

enter image description here

Ваши данные должны иметь отношение. В этом примере: t1.ClusterID = t2.ClusterID. Итак, мы можем ОБЪЕДИНЯТЬ таблицы с помощью следующего запроса:

SELECT COUNT(t2.ClusterName) AS CountOfPayments, t2.ClusterName
FROM #JKLL_Payment_Upload t1
INNER JOIN #Cluster t2
    ON  t1.ClusterID = t2.ClusterID
--WHERE Payment_Status=1 and Reject_Status=0 and First_Level_Approval_Status=0 
GROUP BY t2.ClusterName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...