Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [MS Access] Создание дополнительной таблицы


Автор: THandle 6.12.2008, 19:40
Всем привет еще раз. smile

Есть еще одна проблемка...

Итак. В чем же она заключается?

А заключается она в том, что есть некая таблица.
В ней поля: код товара(счетчик), наименование товара(текстовый), цена товара(денежный).
С помощью запроса цена товара в этой таблице обновляться. Но предыдущее значение цены естественно улетучивается.
Так вот, вопрос: как сделать еще одну таблицу, чтобы в нее, с помощью запроса, могли добавляться поля со старыми значениями цены из первой таблицы?


Заранее спасибо smile

Автор: ТоляМБА 6.12.2008, 19:51
THandle, структура неправильная для данного случая.

Tovar
id
Name

Prices
id
id_Tovar
Price
PriceDate

Новая цена заносится новой записью с текущей датой. Выборка цены для работы берется по максимальной дате. Древние цены со временем можно будет удалять по запросом с условием.

А держать 2 таблицы для "старой" и "текущей" цены имхо нафега?

Автор: THandle 6.12.2008, 22:14
ТоляМБА, вся проблема в том что у меня нет выбора... как сказано так и надо... а Access я никогда вообще не видел, а надо до понедельника собственно говоря... и надо именно так как я в первом посте написал... не можешь так набросать? Оно понятно что вариант плохой... Но по другому нельзя :(

Автор: ТоляМБА 6.12.2008, 22:27
Цитата(THandle @  6.12.2008,  21:40 Найти цитируемый пост)
как сделать еще одну таблицу, чтобы в нее, с помощью запроса, могли добавляться поля со старыми значениями цены из первой таблицы?


Код
Select *
Into NewTable
from Table1
where 1=0
Создаётся таблица NewTable со структурой как у Table1. Таблица пустая, так как по условию "Where 1=0" не выводится ни одной записи (что нам собственно и надо) ибо условие ложно. Данный запрос нужно выполнять ТОЛЬКО 1 раз!

Код
Insert Into NewTable (Tovar, Price)
Select Tovar, Price
from Table1
where Tovar='Твой товар'
Вставляем в новую таблицу старую цену с товаром по условию. НО тут есть ещё один ньюанс не описанный тобой в задании - если такой товар уже был в таблице - что делать? Добавить ещё строку с таким товаром и старой ценой или заменить прошлую старую цену на текущую старую?

Код
Update Table1
set Price=123
where Tovar='Твой товар'
Обновляем в старой таблице цену товара (123 - новая цена).

Автор: Akina 7.12.2008, 21:42
Для домашних заданий, курсовых и вопросов типа "Сделайте за меня" существует раздел "Центр Помощи".

Тема перенесена.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)