Доступ к SQL - можно ли группировать по значениям переключателя? - PullRequest
0 голосов
/ 14 июня 2019

Используя Access 2010, я пытаюсь сгруппировать значения переключателей, и в настоящее время возникают проблемы при разработке кода.По сути, в области лечения в моей БД у меня есть такие значения, как D1, D2, D3, E1, E2, E3.Первая буква обозначает конкретный тип лечения, например, D = Лечение1, E = Лечение2.Я хочу сгруппировать данные, например, по «Лечение1» и «Лечение2».

SELECT switch(LEFT(t1.[treatment],1)='D',"Treatment1",LEFT(t1.[treatment],1)='E',"Treatment2"), count(t1.[UniqueID]) AS Total_Population, count(t2.[date]) AS DateSent, format(count(t2.[date]) / count(t1.[UniqueID]),"0.00%") AS Percentage_Sent, COUNT(IIF(t1.[requirements]='1',1,)) AS requirements_population
FROM Main_table AS t1 LEFT JOIN (SELECT t2.[ID], t2.[date] FROM Main_table AS t2 WHERE t2.date Not Like ('NA'))  AS t2 ON t1.[ID] = t2.[ID]
GROUP BY  [treatment]

Ожидаемый результат - например, Лечение1 - x сумма, Лечение2 - y сумма.Тем не менее, в настоящее время я получаю несколько строк как «Лечение1», так и «Лечение2», поскольку данные, стоящие за этими выражениями, не являются уникальными (т. Е. D1, D2, D3, E1, E2, E3).

1 Ответ

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

Изменить на:

GROUP BY LEFT(t1.[treatment], 1)

так вы группируете по 1-й букве t1.[treatment], а не t1.[treatment]

...