Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

функция, которая выбирает товары   Найти похожие ветки 

 
HanIP   (2004-08-31 08:35) [0]

Такой вопрос есть функция, которая выбирает товары по следующему условию: если в текущем месяце есть приход или расход, то вывести эту запись, а если нет то вывести запись, с максимальным периодом и не нулевым  приходом или расходом. Тектс ее таков:CREATE FUNCTION dbo.MainF (@ID_Period int)  
RETURNS Table AS  
     return SELECT  Pr.ID_Prod, Pr.ID_Tov, Pr.Cena, Pr.ID_Edin, Pr.ID_Schet,
                               dbo.Prihod (@ID_Period, Pr.ID_Period, Pr.Prihod) as Prih, dbo.Prihod (@ID_Period, Pr.ID_Period,
                               Pr.Prihod)*cena as P_Summ, dbo.Rashod (@ID_Period, Pr.ID_Period, Pr.Rashod) as Rash,
                               dbo.Rashod (@ID_Period, Pr.ID_Period, Pr.Rashod)*cena as R_Summ,  
                               dbo.Ostatok(Pr.ID_Tov, Pr.Partija,@Id_Period) AS Ost_Nach, (dbo.Ostatok(Pr.ID_Tov, Pr.Partija,@Id_Period)+
                               dbo.Prihod (@ID_Period, Pr.ID_Period, Pr.Prihod)-dbo.Rashod (@ID_Period, Pr.ID_Period, Pr.Rashod))*cena as O_Summ,
                               dbo.Ostatok(Pr.ID_Tov, Pr.Partija,@Id_Period)+dbo.Prihod (@ID_Period, Pr.ID_Period, Pr.Prihod)-
                               dbo.Rashod (@ID_Period, Pr.ID_Period, Pr.Rashod) as Ost, Pr.ID_Period, Pr.Partija,
                               Pr.Cena * dbo.Ostatok(Pr.ID_Tov, Pr.Partija,@Id_period)
                               AS ON_Summ
FROM         dbo.Prod  pr
                                   Where  ((
                                                    (
                                                     (dbo.Rashod (@ID_Period, Pr.ID_Period, Pr.Rashod)<>0)or
                                                     (dbo.Prihod (@ID_Period, Pr.ID_Period, Pr.Prihod)<>0)
                                                    )
                                                    and(Pr.ID_Period=@ID_Period)
                                                  )or
                                                    ( (Pr.Rashod<>0)or
                                                     (Pr.Prihod<>0)and
                                                     (Pr.ID_Period=(select max(P.ID_Period)  from dbo.Prod P where (P.ID_Period<@ID_Period)and(P.ID_Tov=PR.ID_Tov)and(P.Partija=Pr.Partija)
               and (
                                                              (P.Rashod<>0)or
                                                              (P.Prihod<>0)
                                                            )
                                                                           )
                                                   )
                                                  )
                                                 )
еще используются функции Ostatok - остаток на начало месяца(работает это проверно), Rashod - определяет расход товара в текущем месяце, на случай если росхода нет то выводить ноль, Prihod - такая же как и Rashod отолько для прихода. Проблема в том, что выводятся записи с приходом и еще нулевые за прошлый месяц, которые не должны браться, как от этого уйти?, может в условии где ошибка?


 
SolDen   (2004-08-31 15:15) [1]

С ума сойти!



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.036 c
3-1093454029
MaxN
2004-08-25 21:13
2004.09.26
JPEG


1-1094995519
Marina
2004-09-12 17:25
2004.09.26
наследование от стандартного класса


14-1094505281
Jus
2004-09-07 01:14
2004.09.26
Nt технологии


1-1095155759
Kovsh
2004-09-14 13:55
2004.09.26
Как изменить цвет выделения в StringGrids


6-1090313817
tomas
2004-07-20 12:56
2004.09.26
ServerSocket - получение списка активных коннектов (DELPHI