2009-08-26 7 views
1

В sql server 2005, i в построителе запросов, я выбираю «Добавить группу за», чтобы автоматически добавить предложение group by ко всем выбранным полям. Если одно или несколько из этих полей являются битовыми типами, я получаю сообщение об ошибке. Почему это? Отличает ли столб столбец TINYINT?Невозможно группировать по столбцу бит

+0

Какая ошибка? У меня нет проблем с использованием группы в поле бит. Столбец – JeffO

+0

недействителен в списке выбора, потому что он не содержится ни в агрегатной функции - это была моя ошибка, потому что после того, как я посмотрел @, я не включил его в группу, поэтому я это сделал. Я пытаюсь найти способ ответить на этот вопрос. – Marlon

+1

Оставьте это. Покажите нам код в ответе. – JeffO

ответ

3

Это похоже на ограничение этого инструмента. если вы просто напишите фактический sql самостоятельно в SQL Server Management Studio, он будет работать.

вот мой тестовый код:

CREATE TABLE Test2 
(ID INT, 
bitvalue bit, 
flag char(1)) 
GO 

insert into test2 values (1,1,'a') 
insert into test2 values (2,1,'a') 
insert into test2 values (3,1,'a') 
insert into test2 values (4,1,'b') 
insert into test2 values (5,1,'b') 
insert into test2 values (6,1,'b') 
insert into test2 values (7,1,'b') 

insert into test2 values (10,0,'a') 
insert into test2 values (20,0,'a') 
insert into test2 values (30,0,'a') 
insert into test2 values (40,0,'b') 
insert into test2 values (50,0,'b') 
insert into test2 values (60,0,'b') 
insert into test2 values (70,0,'b') 

select * from test2 

select count(*),bitvalue,flag from test2 group by bitvalue,flag 

ВЫВОД

ID   bitvalue flag 
----------- -------- ---- 
1   1  a 
2   1  a 
3   1  a 
4   1  b 
5   1  b 
6   1  b 
7   1  b 
10   0  a 
20   0  a 
30   0  a 
40   0  b 
50   0  b 
60   0  b 
70   0  b 

(14 row(s) affected) 

      bitvalue flag 
----------- -------- ---- 
3   0  a 
3   1  a 
4   0  b 
4   1  b 

(4 row(s) affected) 
+0

спасибо! я попробую это с моими данными – Marlon

2

инструменты не позволяют некоторые операции, такие как индексирование или группировки на битовых столбцов. Сырой SQL делает.

Обратите внимание, что вы не можете группировать столбцы бит. Вы должны бросить первым. Конечно, усреднение бит столбцов является беспредметным, но MAX/MIN полезно как OR/И, охватывающее несколько строк.

Смежные вопросы