Member 12729058 Ответов: 1

Как уменьшить количество транзакций одного и того же пользователя за два этапа ?


В этом запросе мне нужно получить только одну запись, Если полное имя совпадает для Batchstatsustestext(Coding, Coding review) минус количество транзакций и показать только одну строку
Пожалуйста, помогите булду запросить

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

Я использую ниже запрос в SQL сервере

Выберите RSNNo, FullName, [количество транзакций], Stage, BatchStatusText
Из (выбрать RSNNo, полное имя, [число операций], стадии, BatchStatusText, конвертировать(дата, [дата завершения], 103), а [дата завершения], идентификатора партии batchid, InvoiceID, CompanyCode, имя пользователя, идентификатора docid,
НОМЕР
Из qryTransactionLevelDetails, где BatchID =15515

Группа по RSNNo, полное имя, [число операций], стадии, BatchStatusText, конвертировать(дата, [дата завершения], 103), идентификатора партии batchid, InvoiceID, CompanyCode, имя пользователя, идентификатора docid, количество)
Как tbl1, где (tbl1.Стадия=6 или tbl1.Стадия=7)


Результат такой же как и :

RSNNo Полное Имя Граф Этапе BatchStatusText Сделки
14637 ASZulpe 8 6 Кодирование
14637 ASZulpe 8 7 Обзор Кодирования

Santosh kumar Pithani

можете ли вы привести примерный пример по вашему вопросу с ожидаемым результатом?

1 Ответов

Рейтинг:
2

OriginalGriff

Проблема в том, что вы группируете абсолютно все: и каждый раз, когда вы добавляете предложение GROUP BY, оно добавляет дополнительные строки к вашим выходным данным.
Если бы у вас были эти данные:

A   B   C
0   0   0
0   0   1
0   1   0
0   1   1
1   0   0
1   0   1
1   1   0
1   1   1
И ты сделал это:
SELECT A, SUM(B) AS x, SUM(C) AS y FROM MyTable GROUP BY A

Тогда вы получаете два ряда:
A   x   y
0   2   2
1   2   2
Но если вы добавите второй столбец в свою группу:
SELECT A, SUM(B) AS x, SUM(C) AS y FROM MyTable GROUP BY A, B

Тогда получается четыре ряда:
A   x   y
0   0   1
1   0   1
0   2   1
1   2   1
Потому что добавление B в группировку добавляет уникальность строкам.
Каждый раз, когда вы добавляете предложение, вы увеличиваете количество строк.
И вы добавили все, потому что вы не можете вернуть столбец в SELECT ... Оператор GROUP BY, если только он не является столбцом, перечисленным в группе BY или в агрегатной функции.

Вы можете посмотреть здесь: SQL GROUP By и ошибка "имя столбца недопустимо в списке выбора, потому что..." [^] затем сядьте и подумайте о ваших данных и о том, что именно вы пытаетесь извлечь и как это связано с вашим расположением таблицы и содержанием.