Форум: "Базы";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
Внизфункция, которая выбирает товары Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c