Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> sql запрос 
V
    Опции темы
MrDmitry
Дата 23.1.2014, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Здраствуйте помогите составить sql запрос

есть две таблицы

ID    ID_MACHINE    NAME    SURNAME    PATRONYMIC    ADRESS    BIRTHDAY    DOCUMENT    PHONE    ADVANCED_PHONE    

и

ID    NAME_MACHINE    NUMBER_MACHINE    TECH_SURV_DATE    COLOR


Две эти таблицы связаны между собой ключевыми полями id и id_machine


Мне нужно вывести сгрупированные записи с названием машин

Код

select m.id, m.name_machine, m.number_machine, m.color from "MACHINE_INFO" as m
left join "DRIVERS_INFO" d on d.id_machine=m.id 


Такой sql выдает мне результат

ID    NAME_MACHINE    NUMBER_MACHINE    COLOR
2    Нива            АА111А    Красная
3    Мерседес    ББ111Б1    Черный
3    Мерседес    ББ111Б1    Черный


То есть запись с id = 3 повторилась 2 раза, как понимаю для того чтобы запись не повторялась 2 раза нужно в моем sql запросе дописать group by m.id

Код

select m.id, m.name_machine, m.number_machine, m.color from "MACHINE_INFO" as m
left join "DRIVERS_INFO" d on d.id_machine=m.id group by m.id



Но таким образом я получаю ошибку 

Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).

SQL Error (code = -104):
Invalid token.

и не понимаю почему ((((

Это сообщение отредактировал(а) MrDmitry - 23.1.2014, 22:14
PM MAIL   Вверх
Akina
Дата 24.1.2014, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 3
Всего: 453



Цитата(MrDmitry @  23.1.2014,  23:13 Найти цитируемый пост)
для того чтобы запись не повторялась 2 раза нужно в моем sql запросе

SELECT DISTINCT ...

Цитата(MrDmitry @  23.1.2014,  23:13 Найти цитируемый пост)
не понимаю почему 

Все поля выходного набора (ВСЕ!!!), не включённые в групповые функции, обязаны быть указаны в GROUP BY. Это тебе не MySQL...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.1123 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.