Запросы ...

Обсуждение MAV Direct ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Admin
Администратор
Сообщения: 3963
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 29 раз
Поблагодарили: 22 раза
Контактная информация:

Сообщение Admin »

Всем кто просил данные я выслал. А в ответ тишина :)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

Admin писал(а):Всем кто просил данные я выслал. А в ответ тишина :)
Вот собстеввно как бы я сделал, но замечу, структура БД мне не понравилась:

Код: Выделить всё

create view v_ns_incomedet
 as select GoodsID,SUM(isnull(Amount,0)) as Credit
  from ns_incomedet
   group by GoodsID

Код: Выделить всё

create view v_ns_outlaydet
 as select GoodsID,SUM(isnull(Amount,0)) as Debit
  from ns_outlaydet
     group by GoodsID
результирующий SELECT, аналог SELECT'а по твоей ns_goods_view

Код: Выделить всё

SELECT 
  a.ID,a.GoodsName,b.Price,
    isnull(d.Credit,0) as Credit,
    isnull(e.Debit,0) as Debit,
    isnull(d.Credit,0) - isnull(e.Debit,0) as Balance 
 FROM ns_goods a 
  left outer join ns_incomedet b 
    on b.GoodsID=a.ID and isnull(b.UpdateDateTime,0) in (select MAX(isnull(c.UpdateDateTime,0)) from ns_incomedet c where c.GoodsID = a.ID) 
     left outer join v_ns_incomedet d on d.GoodsID=a.ID 
     left outer join v_ns_outlaydet e on e.GoodsID=a.ID
Ответить