Форум программистов, компьютерный форум, киберфорум
Firebird/InterBase
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 4

Запрос по остаткам товара interbase

18.04.2012, 20:40. Показов 1246. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста в написание запроса, делаю выпускную квалификационую работу. Есть две таблицы прихода(PRTV) товара и расхода товара(RSTV). Нужно чтобы считался остаток по расходованию из партии. Запрос составил но возникла проблема. в поле ost значение по всем полям null.
Выкладываю запрос:
SQL
1
2
3
4
5
6
SELECT TV.TVNAME, EDIZM.EDIZMNAME,
PRTV.KOL-VIEWRSTV.SUMKOL AS OST,  ------Вот тут вся проблема
PRTV.PRICE,
PRTV.PRICE*PRTV.KOL AS SUM1,
TV.GTKOD, PRTV.TVID, TV.EDIZMKOD,PRTV.PRTVID
FROM ((PRTV LEFT JOIN VIEWRSTV ON PRTV.PRTVID = VIEWRSTV.PRTVKOD) LEFT JOIN TV ON PRTV.TVID=TV.TVID) LEFT JOIN EDIZM ON TV.EDIZMKOD=EDIZM.EDIZMID;
Собствено вопрос как можно в interbase 6.0 в место строчки PRTV.KOL-VIEWRSTV.SUMKOL AS OST написать PRTV.KOL-IFF(not(VIEWRSTV.SUMKOL=null),VIEWRSTV.S UMKOL,0) AS OST

VIEWRSTV- представление сумирующее количество расхода по партии.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.04.2012, 20:40
Ответы с готовыми решениями:

Запрос в InterBase
Мы начали работать и InterBase, я создал апстрактную базу данных, в ней все правильно - это точно, уже проверил.Тепреь делаю запросы,...

Реализовать запрос в среде InterBase
Есть 2 таблицы Отделения и палаты: Create table otd (kod nomer primary key, naimen stroka); Create table pal (number nomer...

InterBase. SQL запрос на обновление
Добрый день! Как построить запрос на изменение записи в таблице?

3
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
18.04.2012, 20:49
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT TV.TVNAME, 
       EDIZM.EDIZMNAME,
       PRTV.KOL-COALESCE(VIEWRSTV.SUMKOL,0) AS OST,
       PRTV.PRICE,
       PRTV.PRICE*PRTV.KOL AS SUM1,
       TV.GTKOD, 
       PRTV.TVID, 
       TV.EDIZMKOD,
       PRTV.PRTVID
  FROM PRTV 
  LEFT JOIN VIEWRSTV ON PRTV.PRTVID = VIEWRSTV.PRTVKOD
  LEFT JOIN TV ON PRTV.TVID=TV.TVID
  LEFT JOIN EDIZM ON TV.EDIZMKOD=EDIZM.EDIZMID
1
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 4
18.04.2012, 20:58  [ТС]
Ошибка
Dynamic SQL Error
SQL error code = -804
Function unknown
COALESCE
Нужно чтобы было: Если значение не null то подставлял количество расходования иначе 0
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
18.04.2012, 22:36
Ну вобщем неудачную версию ты взял для курсовой: ib6.0 вышел 12 лет назад и с тех пор вышла масса версий interbase (платные) и firebird (бесплатные) с куда более богатыми языковыми возможностями.
ib6.0, увы, не знает ни coalesce(), ни iif(), ни case, с помощью которых можно было бы по месту обработать null.
Если апгрейд версии сервера не вариант для вас, то есть два варианта:
1) найти UDF которая бы позволила обработать null по типу coalesce;
2) смастерить подручную процедуру-костыль, примерно такого содержания:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE PROCEDURE MINUS(
  EXPR1 NUMERIC(18,2),
  EXPR2 NUMERIC(18,2))
RETURNS(
  EXPR NUMERIC(18,2))
AS
BEGIN
  IF (EXPR2 IS NULL) THEN
    EXPR = EXPR1;
  ELSE
    EXPR = EXPR1 - EXPR2;
  suspend;
END
использовать её в запросе можно будет так:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT TV.TVNAME, 
       EDIZM.EDIZMNAME,
       m.EXPR AS OST,
       PRTV.PRICE,
       PRTV.PRICE*PRTV.KOL AS SUM1,
       TV.GTKOD, 
       PRTV.TVID, 
       TV.EDIZMKOD,
       PRTV.PRTVID
  FROM PRTV 
  LEFT JOIN VIEWRSTV ON PRTV.PRTVID = VIEWRSTV.PRTVKOD
  LEFT JOIN TV ON PRTV.TVID=TV.TVID
  LEFT JOIN EDIZM ON TV.EDIZMKOD=EDIZM.EDIZMID
  LEFT JOIN MINUS(PRTV.KOL, VIEWRSTV.SUMKOL) m ON 0=0
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.04.2012, 22:36
Помогаю со студенческими работами здесь

Как написать запрос на Firebird, Interbase 2009
В бд есть таблицы: Income-накладные прихода: Income_id,Partn_id, Goods_id, Price, Qty, taxable(товар платит или нет ндс) ...

Отчет по продажам и остаткам товара
Делаю внешний отчет на 8.2, который должен формировать отчет по продажам и остаткам товара по неделям. На форме есть выбор периода,...

Принцип составления отчета по остаткам товара на складе в 1С
Подскажите, пожалуйста, по какому принцепу составляется отчет по остаткам товара на складе в 1С... Работаю напрямую с базами 1С *.dbf. ...

Запрос по остаткам
Здравствуйте. Составил простой запрос, вычисление количественных и стоимостных остатков на складе. Но проблема в том, что если у данной...

Запрос к остаткам регистра накопления
Функция ПолучитьДаныеПоСырью(ТекДокумент, МассивСырья) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru