Группировка сокращенной строки и не сокращенной строки из выражения регистра в счетчик - PullRequest
0 голосов
/ 24 июня 2019

Извините, если я не очень хорошо это объясняю или не предоставил достаточно информации.

Я пытаюсь объединить цифры, используя счетчик, но столкнулся с проблемой, когда данные из моего выражения случая не группируются вместе.

Оператор case требуется для обработки кодов различных типов с префиксами в столбце NUMBER, которые необходимо удалить:

T123456
123456

Это пример кода:

ВЫБРАТЬ дело когда слева (NUMBER, 1) = 't', то RIGHT (NUMBER, 6) еще НОМЕР конец как пользователь, считать (логин) из доступа группа по дело когда слева (NUMBER, 1) = 't', то RIGHT (NUMBER, 6) еще НОМЕР конец

Мой запрос должен возвращать группировку из "числа", чтобы получить общую сумму, а не две отдельные строки.

This:
123456  10
Not this:
123456  7
123456  3

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

Извините за отсутствие информации, которой я поделился, я нашел ответ сейчас.

Это лучшая интерпретация моего запроса:

SELECT case when left(A.NUMBER,1) = 't' then RIGHT(A.NUMBER, 6) else NUMBER end as User, Count(a.login) from Access A Left join Logins L On L.LoginID = A.number group by case when left(NUMBER,1) = 't' then RIGHT(NUMBER, 6) else NUMBER end

В конце концов, у него возникло волнение по поводу предложения «On», и он присоединился к нему с оператором case над ним

Теперь он группирует все одинаковые числа вместе

0 голосов
/ 24 июня 2019

Я полагаю, ваш запрос

SEELCT case 
when left(NUMBER,1) = 't' then RIGHT(NUMBER, 6) 
else NUMBER 
end as User, col1
FROM table

пожалуйста, измените его на:

SEELCT case 
when left(NUMBER,1) = 't' then RIGHT(NUMBER, 6) 
else NUMBER 
end as User, SUM(col1)
FROM table
GROUP BY case 
when left(NUMBER,1) = 't' then RIGHT(NUMBER, 6) 
else NUMBER 
end
...