1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Delphi и Sql

Тема в разделе "Delphi - программирование", создана пользователем babreonok, 5 окт 2006.

Статус темы:
Закрыта.
  1. babreonok

    babreonok Гость

    Репутация:
    0
    Помогите ктонить! Я делаю выборку из 3-х таблиц базы данных с помощью следующего кода:
    [sql]dtm.Query.SQL.Text:='SELECT maintable.gosregznak,maintable.markaauto,'+
    'maintable.modelauto,maintable.identnum,maintable.type,maintable.kategory,'+
    'maintable.godvupusk,maintable.shassi,maintable.kuzov,maintable.color,'+
    'maintable.region,maintable.maxweight,maintable.emptyweight,'+
    'maintable.DateUcheota,'+
    'owner.sertnum,owner.family,owner.name,owner.Patronymic,owner.Direction,'+
    'owner.Town,owner.Street,owner.House,owner.Korpus,owner.Apartment,'+
    'owner.PasportSeriya,owner.PasportNum,motor.MotorNum,motor.Model,'+
    'motor.Power,motor.WorkWolum';
    dtm.Query.SQL.Add('FROM (maintable inner join owner on maintable.sertnum=owner.sertnum), (maintable inner join motor on maintable.motornum=motor.motornum)');
    dtm.Query.SQL.Add('WHERE ('+asMainFilter+')');
    dtm.Query.SQL.Add('order by maintable.gosregznak');
    dtm.Query.Open;[/sql].В этой базе бывает так, что одной записи в таблице owner может соответствовать несколько записей в таблицах maintable и motor. При выполнении этого кода я получаю 6 (шесть) экземпляров записи удовлетворяющей условию, 3 из которых не содержат ни какой информации в полях таблицы owner. Что делать, чтобы получать только 1 копию записей?
     
  2. Barmutik

    Barmutik Гость

    Репутация:
    0
    Составить правильно SQL запрос .. судя по Вашим словам у Вас присутствует отношение один ко многим в таблицах owner с остальными ...

    Вам надо объяснить Вашей БД какую брать запись из подчинённых таблиц .. если Вы конкретно хотите только одну то используйте агрегатные фукнции для получения первоначально курсора из подчинённых таблиц а уже потом джойньте его с основной таблицей ...
     
  3. babreonok

    babreonok Гость

    Репутация:
    0
    Barmutik, а можешь посоветоввать хорошее пособие по скюэлю?
     
  4. Barmutik

    Barmutik Гость

    Репутация:
    0
    Мммм.. у меня когда-то первая книга была .. Сборник задач для языка SQL... там сначла давался материал а после уже по нему шли задачи ...

    На текущий момент что-то более свежее врядли могу посоветовать.. возьмите любой справочник по ANSI SQL ...
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей