Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

помогите с запросом

7.4K
25 мая 2004 года
that
3 / / 25.05.2004
есть таблица товаров,
id_товара
Название
таблица приходов товара
id_записи,
id_товара
количество
, и
таблица реализации
id_записи,
id_товара
количество

требуется сделать запрос, выбирающий для всех товаров
Название товара, и его количество на складе

количество товара на складе=Сумма всех приходов-Сумма всех расходов

Помогите кто в курсе?
10
25 мая 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by that
есть таблица товаров,
id_товара
Название
таблица приходов товара
id_записи,
id_товара
количество
, и
таблица реализации
id_записи,
id_товара
количество

требуется сделать запрос, выбирающий для всех товаров
Название товара, и его количество на складе


Запрос для сервера Oracle:

Код:
select
  a.id_товара, a.Название,
  nvl(sum(b.количество), 0) - nvl(sum(c.количество), 0)
from
  "таблица товаров" a,
  "таблица приходов товара" b,
  "таблица реализации" c
where
  a.id_товара = b.id_товара (+) and
  a.id_товара = c.id_товара (+)
group by
  a.id_товара, a.Название
7.4K
26 мая 2004 года
that
3 / / 25.05.2004
а как быть с Access-ом, в котором нет функции nvl ?
10
26 мая 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by that
а как быть с Access-ом, в котором нет функции nvl ?


Найти аналогичную, или отказаться от ее использования. NVL нужна, чтобы избавиться от возможного NULL, если для какого-то товара нет ни одной записи в таблице прихода или расхода.

6.0K
27 мая 2004 года
Lenich
16 / / 14.05.2004
Цитата:
Originally posted by that
а как быть с Access-ом, в котором нет функции nvl ?



Попробуй в запросе в SQL-режиме вставить примерно следующее:
SELECT DISTINCTROW Товар.Name_Товар, Sum(IIf(Товар_Приход.[Кол-во_Приход] Is Not Null,[Кол-во_Приход],0)) AS [Sum-Приход], Sum(IIf(Товар_Расход.[Кол-во_Расход] Is Not Null,[Кол-во_Расход],0)) AS [Sum-Расход], [Sum-Приход]-[Sum-Расход] AS [На складе]
FROM (Товар LEFT JOIN Товар_Приход ON Товар.id_Товар = Товар_Приход.id_Товар) LEFT JOIN Товар_Расход ON Товар.id_Товар = Товар_Расход.id_Товар
GROUP BY Товар.Name_Товар;

С именами, я думаю разберешься.

7.4K
27 мая 2004 года
that
3 / / 25.05.2004
Спасибо, с Access-ом понятно.
А как быть в аналогичном случае с Interbase?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог