powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Работа с периодическими значениями
15 сообщений из 15, страница 1 из 1
Работа с периодическими значениями
    #32058658
kosm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите,пожалуйста,как сделать "правильно".
Есть две таблицы:
Цены
Дата|Цена|КодТовара
,где Дата-дата изменения цены.

Товар
КодТовара|Дата|ПриходШтук|...|...
,отмечающая движение товара.

Надо создать запрос,чтобы получилась таблица
КодТовара|Дата|ПриходШтук|Цена|

Как сделать эффективный перебор Цена на предмет поиска Цены.КодТовара =Товар.КодТовара and Товар.Дата=последнему изменению Цены.Цена?
...
Рейтинг: 0 / 0
Работа с периодическими значениями
    #32058664
nandji
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
цену в движения запихнуть :)
вместе с суммами :)
проще потом пощитать будет
...
Рейтинг: 0 / 0
Работа с периодическими значениями
    #32058669
kosm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да проще всего-то пересчитать На все даты таблицу Цены,но ...
...
Рейтинг: 0 / 0
Работа с периодическими значениями
    #32058675
nandji
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для меня понятие периодичной цены связано с учетом по партиям ... вводить периодичность привязываясь только к дает помоему как-то убого. а что будет если :

за день цена сменится несколько раз ?

в один день придут разные поставки одного и того же товара по разной цене?
...
Рейтинг: 0 / 0
Работа с периодическими значениями
    #32058678
kosm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой вариант однозначно-одинаковая цена.
Как таковой партионный учет не влияет,необходимо смотреть только по дате
...
Рейтинг: 0 / 0
Работа с периодическими значениями
    #32058681
nandji
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну тогда я бы наверное функцию(товар, дата) написал хотя наверное это не самый быстрый вариант
...
Рейтинг: 0 / 0
Работа с периодическими значениями
    #32058683
kosm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Варианты то как сделать у меня есть,хотя бы,как упоминал изменение таблицы Цены,но все это как то убого,неправильно.
...
Рейтинг: 0 / 0
Работа с периодическими значениями
    #32058685
nandji
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоесть подожди ...
перечитал условия :))
я так понял что запрос должен выдавать по какой цене пришел товар .. так ?
тогда там обычный джойн
...
Рейтинг: 0 / 0
Работа с периодическими значениями
    #32058688
kosm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JOIN не обычный-в нем не известна дата.
Нашел нечто подобное
http://1csql.virtualave.net/1csql/st0037.htm
...
Рейтинг: 0 / 0
Работа с периодическими значениями
    #32058705
Александр Спелицин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например так:
В таблицу с ценами добавить поле с датой окончания действия цены [Дата кон.]. Значение этого поля придется поддерживать в триггерах или в процедурах, изменяющих цены.
Тогда запрос будет такой:
Select [КодТовара], [Дата], [ПриходШтук], [Цена]
From Товар, Цены
Where Товар.[КодТовара] = Цены.[КодТовара]
and Товар.[Дата] between Цены.Дата and Цены.[Дата кон.]
...
Рейтинг: 0 / 0
Работа с периодическими значениями
    #32059010
kosm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если интересно,то сработало так-

select q.КодТовара,q.Дата,ПритходШтук,Цена
from Товар as q,
[Цены] as w
where w.КодТовара = q.КодТовара
and w.Дата =
(
select max(w2.Дата) from [Цены] as w2
where w2.КодТовара = q.КодТовара
and w2.Дата<q.Дата
)

Правда скорость оставляет желать лучшего...8(
...
Рейтинг: 0 / 0
Работа с периодическими значениями
    #32059091
Bzzzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сорьки, а цена какая? Если приход - однозначно в [Товар], расход - только в [Цены].
В последнем случае случае вариантов два - уже предложен период(DateStart, DateEnd) и ежедневное формирование прайса. И тот и другой имеют очевидные плюсы и минусы, т.ч. решать по ситуации!
...
Рейтинг: 0 / 0
Работа с периодическими значениями
    #32059104
kosm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Цена самая,что не на есть закупочная...
...
Рейтинг: 0 / 0
Работа с периодическими значениями
    #32059112
Bzzzzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[Товар], и только туда! Иначе с History потом забодаться... Если на сегодня разногласий по ценам нет, это не факт что так и будет(из горького опыта). На текущий момент для поддержания существующей ситуации(единые цены за день/период рекомендую навесить проверочку возможного случайного расхождения(на случай ошибки при вводе).
...
Рейтинг: 0 / 0
Работа с периодическими значениями
    #32059234
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно так.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
create table #Цены(
	Дата datetime,
	Цена money,
	КодТовара int
)

create table #Товар(
	КодТовара int,
	Дата datetime,
	ПриходШтук int
)

insert #Цены values('01/01/01', 100 , 1 )
insert #Цены values('01/01/02', 200 , 1 )
insert #Цены values('01/01/03', 200 , 1 )
insert #Цены values('01/01/01', 200 , 2 )
insert #Цены values('01/01/02', 200 , 2 )

insert #Товар values( 1 ,'05/01/01', 10 )
insert #Товар values( 2 ,'05/01/01', 10 )
insert #Товар values( 1 ,'05/10/01', 15 )
insert #Товар values( 2 ,'05/10/02', 20 )
insert #Товар values( 1 ,'05/10/02', 5 )

select q.КодТовара,q.Дата,ПриходШтук,
	Цена = (select top  1  w.Цена from #Цены as w
	where w.КодТовара = q.КодТовара 
		and w.Дата<q.Дата 
	order by w.Дата DESC)
from #Товар as q

drop table #Цены
drop table #Товар
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Работа с периодическими значениями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]