Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2014, 20:37   #1
studen
Пользователь
 
Регистрация: 21.05.2012
Сообщений: 88
Злость сложный sql-запрос в чем ошибка?

сделал вычисляемое поле (Computed by), написал запрос.

Он должен на основе результатов выборки из нескольких таблиц возвращать число. Выборка зависит от первичного ключа текущей записи (ID), и скорее всего фигня в том, что во внутреннем select'е ID не видно. Ну так как же правильно?

Код:
(
  ( SELECT
      SUM(ONE)
    FROM
    ( SELECT
        TOVARY.CENA * TOVAR_ZAKAZ.KOLVO AS ONE
      FROM
        TOVARY,
        TOVAR_ZAKAZ
      WHERE
        TOVAR_ZAKAZ.ZAKAZY_ID = ID AND
        TOVAR_ZAKAZ.TOVARY_ID = TOVARY.ID
    )
  )
)
Upd: вот это работает. но нужно именно то, что сверху
Код:
(
  ( SELECT
      ( CAST (SUM(ONE) AS INTEGER) )
    FROM
      ( SELECT TZ.KOLVO AS ONE FROM TOVAR_ZAKAZ AS TZ WHERE TZ.ZAKAZY_ID = ID )
  )
)

Последний раз редактировалось studen; 25.12.2014 в 21:37.
studen вне форума Ответить с цитированием
Старый 26.12.2014, 04:24   #2
Vapaamies
Просветитель
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,844
По умолчанию

Цитата:
Сообщение от studen Посмотреть сообщение
Ну так как же правильно?
Чтобы ответить на этот вопрос, нужна структура БД и внятное описание того, что нужно получить.
В разработке: воспроизводственный контур ИТ
Vapaamies вне форума Ответить с цитированием
Старый 26.12.2014, 08:26   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Vapaamies, +1

причём, обязательно должно быть сообщено
- какая СУБД используется
- где и как используется запрос
- откуда берётся значения ID (это же некий внешний параметер, так?)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.12.2014, 08:27   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ну так как же правильно?
Скорее всего JOINами... Но как правильно замечено - структуру и четкое ТЗ в студию.
Иначе угадывать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.12.2014, 12:12   #5
studen
Пользователь
 
Регистрация: 21.05.2012
Сообщений: 88
По умолчанию

Спасибо всем, кто ответил. Я вчера весь день пробовал, и в итоге пришлось убрать вычисляемое поле и сделать запрос SELECT для всей таблицы.

Я понял, что нужно еще структуру БД приводить, в следующий раз так и сделаю.

Код:
SELECT
    ID,
    STATUS,
    POKUP_ID,
    DATA,
    ( SELECT
        ( CAST (SUM(ST) AS INTEGER) )
        FROM
        ( SELECT T.CENA * TZ.KOLVO AS ST FROM TOVARY AS T, TOVAR_ZAKAZ AS TZ WHERE TZ.TOVARY_ID = T.ID AND TZ.ZAKAZY_ID = ZAKAZY.ID)
    ) AS STOIMOST
FROM
    ZAKAZY 
WHERE
    POKUP_ID = :ID
studen вне форума Ответить с цитированием
Старый 26.12.2014, 12:25   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А так не ест что-ли? Или чем больше вложенность, тем интереснее?
Код:
SELECT
    ID,
    STATUS,
    POKUP_ID,
    DATA,
    (SELECT CAST(SUM(T.CENA * TZ.KOLVO) AS INTEGER) FROM TOVARY AS T, TOVAR_ZAKAZ AS TZ WHERE TZ.TOVARY_ID = T.ID AND TZ.ZAKAZY_ID = ZAKAZY.ID) AS STOIMOST
FROM
    ZAKAZY
WHERE
    POKUP_ID = :ID
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложный запрос SQL irina1410 БД в Delphi 4 03.07.2012 16:46
сложный sql-запрос на mysql Cpluser Помощь студентам 2 24.11.2011 16:53
Сложный запрос в SQL A-Lex-Is SQL, базы данных 1 10.08.2010 23:19
сложный sql запрос kate158 БД в Delphi 0 18.09.2008 11:38
Сложный SQL-запрос ole777 БД в Delphi 1 08.05.2007 20:56