![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите с SQL
Вика © (2004-08-13 14:45:00)Помогите с написанием SQL для решения следующей задачи:
есть постоянная таблица карточек, еженедельно из другой проги с некоторую таблицу выгружатся карточки со полем статуса "USED". Эту самую табличку надо стравнить с постоянной таблицей карточек и поменять у соответствующих карточек статус "AVAILABLE" на "USED" и проставить в поле statuschange дату изменения статуса.
Ega23 (2004-08-13 16:13:00) [41]приведите пример...
Я только один знаю - когда в качестве БД используешь плоские файлы собственного формата. Так делать, теоретическиЮ можно. Практически - изврат.
Квэнди (2004-08-13 16:11:00) [42]46_55_41_44: И еще вопрос: вы много приложений написали, использующих SQL?.. по-мойму нет, совет вам один: почитайте подробное описание SQL и, возможно, тогда вы передумаете....
А вот про клиент сервер.... ждем ответа :)
Квэнди (2004-08-13 16:08:00) [43]46_55_41_44:
ето не ирония, а просто удивление.... кстати, Чайник очень правильно сказал: приведите пример...
Ega23 (2004-08-13 16:07:00) [44]Ирония не уместна помоему...
Отнюдь. Что такое технология "клиент-сервер"?
46_55_41_44 (2004-08-13 16:04:00) [45]Ирония не уместна помоему...
Квэнди (2004-08-13 16:03:00) [46]Нужно делать программно... все С SQL не сделаешь.. могу помочь, если хошь...
Очень интересное заявление, а вы вкурсе что большинство приложений, разработанных для обработки баз дынных используют Delphi исключительно как визуальную оболочку?
Чайник (2004-08-13 16:01:00) [47]46_55_41_44:
Мда... оригинально.. приведи пожалуйста пример того что нельзя сделать на sql?
Ega23 (2004-08-13 15:59:00) [48]Нужно делать программно... все С SQL не сделаешь.
Да ну?
46_55_41_44 (2004-08-13 15:52:00) [49]Нужно делать программно... все С SQL не сделаешь.. могу помочь, если хошь...
1008 (2004-08-13 15:31:00) [50]Вика (13.08.04 15:11) [10]
Например:
1. отсортировать постоянную таблицу по статусу "UNUSED" (или как он у вас обозначен);
2. пройтись по отсортированным записям и сравнить есть ли данная текущая запись во "временной" таблице;
2.1. если есть, то внести изменения в постоянную таблицу
2.2. смотрим следующую запись.
Skyle (2004-08-13 15:26:00) [51]
UPDATE ConstTable
SET ConstTable.Status = T.Status,
ConstTable.dateStatusChange = T.dateStatusChange
FROM TempTable T
WHERE ConstTable.Id = T.ID
Оно?
ConstTable - постоянная таблица, TempTable - еженедельная.
Вика (2004-08-13 15:16:00) [52]2 Skyle ©
Сложность - в общем-то в том, что я не знаю как этот запрос написать на SQL :(
Skyle (2004-08-13 15:15:00) [53]А в чём именно сложность заключается?
Вика (2004-08-13 15:11:00) [54]2 1008 ©
В этой таблице только часть всеобщей таблицы, подмножество записей у которых status = "USED". Это значит в другой программе за неделю изменились статусы некоторых карточек, и в эту "временную" таблицу выгружается это подмножество записей со статусом "used". В то время как всеобщая таблица не изменяется и надо ее сравнить с этой временной и изменить статусы у соттветствующих записей.
Skyle (2004-08-13 15:09:00) [55]Есть таблица - справочкик (постоянная). Есть некоторая таблица, в которой перечислен список карточек со статусом Used.
Требуется для этого списка в постоянной таблице поставить дату (dateStatusChange) и Status в 'Used'.
Связь таблиц по ID.
Я правильно понял?
То есть, изменить нужно постоянную таблицу, так?
1008 (2004-08-13 15:07:00) [56]Вика (13.08.04 15:05) [7]
Если статус в постоянной таблице всё-равно будет изменён на USED, то почему бы его сразу не изменять? Тогда отпадёт необходимость переноса.
Вика (2004-08-13 15:05:00) [57]Временная таблица это навеоное не совсем правильный я термин употребила, т.е. имелось в ивду таблица, в которую данные загружаются с периодичность раз в неделю. Используется БД MS Access, ADO в Delphi.
Вика (2004-08-13 15:04:00) [58]2 Skyle ©
Постоянная таблица:
id
seria
status
numSeller
dateStatusChange
Временная таблица все тоже самое, только значения всех полей status = "USED".
1008 (2004-08-13 15:02:00) [59]А данные во второй таблице дублируют постоянную?
Квэнди (2004-08-13 15:01:00) [60]сори