Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вывести в DBGRIDEH, незнаю как вывести значения в ячейку 
:(
    Опции темы
Gumi
  Дата 3.11.2011, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте.

Подскажите пожалуйста пути решения следующей задачи:
1.  таблица PLN
PLN_ID
     1
     2
     3
     4
    .....
2.  таблица SOOB
SOOB_ID      EQUIP     PLN_ID
       1              E1              4   
       2              E2              4
       3              E2              1
       4              E1              2
       5              E1              4
       6              E3              3
      .....

Код

 SELECT PLN_ID,  (select EQUIP FROM SOOB WHERE PLAN_ID=PLN_ID)  AS NOV FROM PLN WHERE DEL = 0


мне выходит ошибка "subquery returned more than 1 value".
Но это понятно! он ругается на то что, например, по идентификатор PLN_ID=4 возращается 3 значения EQUIP: E1, E2 и E1.

Как можно в DBGRID вывести результат такого запроса???  smile 
мне надо по PLN_ID вывести все значения поля EQUIP  из таблицы SOOB???



PM MAIL   Вверх
Frees
Дата 3.11.2011, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

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



Цитата(Gumi @  3.11.2011,  12:04 Найти цитируемый пост)
мне выходит ошибка "subquery returned more than 1 value".

DBGRID тут совсем нипричем


Цитата(Gumi @  3.11.2011,  12:04 Найти цитируемый пост)
мне надо по PLN_ID вывести все значения поля EQUIP  из таблицы SOOB???


про left join почитай

Код

SELECT
    P.PLN_ID,
    S.EQUIP
FROM PLN P
    LEFT JOIN SOOB S ON S.PLAN_ID = P.PLN_ID
WHERE
    P.DEL = 0   


как выводить картинки подробно написано в доке по TDBGridEh

Это сообщение отредактировал(а) Frees - 3.11.2011, 10:23


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Gumi
Дата 3.11.2011, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо Frees! smile 

По вашему примеру у меня теперь выходит 
 PLN_ID   SOOB_ID      EQUIP    
   4                  1              E1                
   4                  2              E2              
   4                  5              E1      
, т.е  PLN_ID  выводится 3 раза! smile 

   
А у меня задача была вывести данные вот так:
 PLN_ID   SOOB_ID      EQUIP    
   4           1,2,5              E1, E2, E1                

Можно конечно Group by использовать, но у меня в таблице есть и другие поля , поэтому его не применяю?


Это сообщение отредактировал(а) Gumi - 3.11.2011, 12:21
PM MAIL   Вверх
Frees
Дата 3.11.2011, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

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



Какая СУБД?

в Firebird (c v2.5) например можно так написать:

Код

SELECT
    P.PLN_ID,
    LIST(S.SOOB_ID, ', ') SOOB_ID,
    LIST(S.EQUIP, ', ') EQUIP
FROM PLN P
    LEFT JOIN SOOB S ON S.PLAN_ID = P.PLN_ID
WHERE
    P.DEL = 0   
GROUP BY P.PLN_ID


Это сообщение отредактировал(а) Frees - 3.11.2011, 12:32


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Gumi
Дата 3.11.2011, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



СУБД MS SQL 2000
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


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

1. Базы данных (Paradox, Oracle и т.п.)

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


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


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

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


 




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


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

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