Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ошибка с вложенным запросом  [new]
Gallemar
Member

Откуда: г.Новосибирск
Сообщений: 5364
SELECT  [quantity]
	  ,[NAME]   
  FROM (SELECT count ([NAME]) as 'quantity',[NAME] FROM [biotime].[dbo].[USERINFO] group by   [NAME] )



получаю ошибку Сообщение 102, уровень 15, состояние 1, строка 5
Неправильный синтаксис около конструкции ")".
17 фев 17, 06:25    [20219876]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с вложенным запросом  [new]
Добрый Э - Эх
Guest
Gallemar,

подзапросу-источнику данных как минимум нужно присвоить алиас, ибо неименованные источники данных не все СУБД поддерживают

SELECT  [quantity]
	  ,[NAME]   
  FROM (SELECT count ([NAME]) as 'quantity',[NAME] FROM [biotime].[dbo].[USERINFO] group by   [NAME] ) as v
17 фев 17, 06:34    [20219886]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с вложенным запросом  [new]
aleksrov
Member

Откуда:
Сообщений: 948
Gallemar,

....group by [NAME] ) as t
17 фев 17, 06:34    [20219888]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с вложенным запросом  [new]
Добрый Э - Эх
Guest
Gallemar
SELECT  [quantity]
	  ,[NAME]   
  FROM (SELECT count ([NAME]) as 'quantity',[NAME] FROM [biotime].[dbo].[USERINFO] group by   [NAME] )



получаю ошибку Сообщение 102, уровень 15, состояние 1, строка 5
Неправильный синтаксис около конструкции ")".
ещё смущает, что алиас колонки ты задаешь как строковый литерал.... зачем в апострофы взято?
17 фев 17, 06:40    [20219890]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с вложенным запросом  [new]
Добрый Э - Эх
Guest
Добрый Э - Эх
ещё смущает, что алиас колонки ты задаешь как строковый литерал.... зачем в апострофы взято?
кажись тут не в тему.... это же не оракл... это же ms sql server... можно и в апострофах.
17 фев 17, 06:44    [20219897]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с вложенным запросом  [new]
o-o
Guest
Добрый Э - Эх
ещё смущает, что алиас колонки ты задаешь как строковый литерал.... зачем в апострофы взято?

У нас один типчик все названия колонок берет в апострофы,
объясняет это тем, что так в студии получает названия столбцов красным цветом
17 фев 17, 08:15    [20219954]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с вложенным запросом  [new]
Gallemar
Member

Откуда: г.Новосибирск
Сообщений: 5364
У меня привычка строки в кавычки ставить
17 фев 17, 09:05    [20220032]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с вложенным запросом  [new]
Gallemar
Member

Откуда: г.Новосибирск
Сообщений: 5364
Можете ещё подсказать почему при запросе
SELECT  [USERID]
      ,[BADGENUMBER]
      ,[NAME]
	  , count ([NAME])  as quantity 
  FROM [biotime].[dbo].[USERINFO] group by 
	  [USERID],
      [BADGENUMBER],
      [NAME]


выводит только строки с одинаковым кол-вом? Нужно вывести USERID и BADGENUMBER с совпадающими NAME.
17 фев 17, 09:18    [20220068]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с вложенным запросом  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Gallemar,

значит данные такие.
17 фев 17, 11:27    [20220406]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с вложенным запросом  [new]
Добрый Э - Эх
Guest
Gallemar
Нужно вывести USERID и BADGENUMBER с совпадающими NAME.
для этого нужно сделать либо EXISTS-подзапрос, либо SELF JOIN. А уж если делать на группировке, то нужно как-то подумать в сторону HAVING
17 фев 17, 11:30    [20220419]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка с вложенным запросом  [new]
o-o
Guest
Gallemar
Нужно вывести USERID и BADGENUMBER с совпадающими NAME.

declare @t table (id int, b int, name varchar(100), surname varchar(100));
insert into @t values
(1, 100, 'vasja', 'petrov'),
(2, 200, 'vasja', 'pupkin'),
(3, 300, 'misha', 'juzhakov'),
(4, 400, 'petja', 'vasechkin'),
(5, 500, 'petja', 'kljukvin'),
(6, 600, 'olja',  'petrova');

with cte as
(
select name
from @t
group by name
having COUNT(*) > 1
)

select name, id, b
from @t t
where exists (select * 
              from cte c
              where t.name = c.name);
17 фев 17, 11:46    [20220531]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить