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

Вниз

Запрос на базе нескольких таблиц в Accesse.   Найти похожие ветки 

 
JazY   (2005-12-10 23:42) [0]

Я использую обычный Аксесовский файл в основе которого 12 таблиц (по количеству мясецев). Таблицы стандартные и заполняются нашими местными манагерами (они же менеджеры). Во всех таблицах есть поле "номер машины". Суть в том, что каждый месяц уходит машина с текущими заказами. Т.е к примеру, в марте уходит машина в основном с заказами, которые получены в марте. Но кроме мартовских заказов в нее попадают некоторые январьские и февральские. Таким образом, заполняя поля "номер машины" (речь идет о порядковом номере) один и тот же номер может фигурировать в разных месяцах. Ключевая задача заключается в том, чтобы вывести отчет по номерам машин. Если бы это была единая таблица, то проблем нет. Однако, тут 12 таблиц (и поменять тут ничего нельзя по целому ряду объективных и не очень причин) и запрос должен проверить все 12 таблиц. В принципе, теоритически понятно как эту задачу выполнить в Делфи. Насколько я понимаю, можно последовательно загружать таблицы искать в них нужные строки и записывать их в отчет. Но данную задачу видимо можно выполнить и внутри самого Аксеса. Т.е средствами Аксеса, создать запрос, а потом этот запрос вызывать из Делфи. Можно ли средствами Аксеса создать запрос, который просмотрить 12 таблиц и выведет нужный результат?


 
Anatoly Podgoretsky ©   (2005-12-11 00:01) [1]

UNION


 
JazY   (2005-12-11 00:10) [2]


> UNION

Эээээ.... А это что такое? Можно по подробней?


 
Anatoly Podgoretsky ©   (2005-12-11 00:16) [3]

Опа, как же ты тогда программируешь в Акцесс?


 
JazY   (2005-12-11 00:32) [4]


> Опа, как же ты тогда программируешь в Акцесс?

Я не программирую в Аксес, я просто хочу использовать встроенные функции, чтобы упростить работу в Делфи.


 
Anatoly Podgoretsky ©   (2005-12-11 01:16) [5]

Ну какая разница Акцесс или нет, это относится к фундаменту SQL
Теперь бери справку по Акцесс (JET) или можно по любому серверу и смотри как этим пользоваться.


 
YurikGL ©   (2005-12-11 01:22) [6]

ИМХО автору нужно посмотреть, что такое SQL-запросы, как их используют и что означает UNION.


 
JazY   (2005-12-11 02:10) [7]

Т.е я так понял, что с помощью SQL запросов можно вытащить информацию из нескольких таблиц?
Однако! Я так понял, что на храпом данную задачу не разрешить.
Дело в том, что я признаться новичок. Аксес и Делфи использую не как специлист программист, а в попытке упростить свою работу с помощью этакого кустарного программирования. Мне бы увидеть пример и я бы по аналогии решил указанную задачу. Конечно, справка это здорово, но мне она сейчас как я ежу футболка. Вот пример сильно бы помог.


 
YurikGL ©   (2005-12-11 02:24) [8]


> Т.е я так понял, что с помощью SQL запросов можно вытащить
> информацию из нескольких таблиц?

Абсолютно верно


> Мне бы увидеть пример и я бы по аналогии решил указанную
> задачу.

Делаешь запрос типа select ... from ... where....

Подробнее см http://podgoretsky.com/ddp.html Мартин Грубер. Понимание SQL

И вообще советую почитать книги по основам БД.


 
JazY   (2005-12-11 02:30) [9]

2 YurikGL
Я уже книжку качаю (за ссылку спасибо!) и буду сейчас обучаться, но если вдруг появится возможность указать образец, то это сильно поможет делу.


 
JazY   (2005-12-11 02:44) [10]

SELECT snum, sname
FROM  Salespeople
WHERE city = "London"
UNION
SELECT cnum, cname
FROM Customers
WHERE city = "London";                        

Вот кажись нашел пример! Все таки книга - это сила... особенно правильные :)

Спасибо за помощь!


 
Anatoly Podgoretsky ©   (2005-12-11 13:52) [11]

Ну вот наконец, с самого начала туда и толкали.
Теперь второй толчок, читай книгу отдельно от программирования, а не взамен. Базовые основы надо знать до.


 
sniknik ©   (2005-12-11 15:01) [12]

хм.. не очень очевидно и думаю надо про это сказать.
с UNION при таком выборе (из всех поле выбраны только 2) могут быть повторы записей по значениям оба совпадут (и даже если одно из них уникально в пределах своей таблици... тоже может но с очччень маленькой вероятностью)
в общем тут надо(лучше) использовать UNION ALL чтобы не потерять дубль (который на самом деле не дубль а аналогичный рейс на туже сумму в другом месяце).
ну или признак таблицы/месяца в каждый запрос включить.


 
JazY   (2005-12-11 22:45) [13]


> использовать UNION ALL

Точно! Я вот тестировал и как раз обнаружил такой косяк.


 
msguns ©   (2005-12-12 09:51) [14]

БД изначально спроектирована "инвалидно" и обречена на то, что информация в ней будет недостоверна и не нормализована.

1. Привести модель БД в "естественный" вид, введя вместо непонятных таблиц, содержащих "псевдодокументостроки" (еще и помесячно) нормальные "нативные" объекты: заказы, поступления, отгрузки.  
2. Интерфейс переделать с редактирования "таблиц" на редактирование "документов" как единых и неделимых сущностей.
3. Добавить складской учет с возможностью учета по поставкам и хранения с указанием заказа, "под" который приобретался товар у поставщиков. Все движение (все документы) "завязать" на склад.
4. Ввести учет менеджеров с разделением заказов и покупателей: каждый документ должен быть "авторизирован" на соотв. менеджера.

Только после этого имеет смысл мостить какую-то аналитику, в т.ч. и ту, о которой упоминается в сабже.



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

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

Наверх




Память: 0.5 MB
Время: 0.044 c
1-1133161766
MadGhost
2005-11-28 10:09
2005.12.25
Как завершить второй поток, работая с СОМ портом.


1-1132991191
thely
2005-11-26 10:46
2005.12.25
Delphi & PDF


8-1121674933
FXeS
2005-07-18 12:22
2005.12.25
Управление Winamp


1-1133224429
Мастер Ломастер
2005-11-29 03:33
2005.12.25
Как сохранить созданные в ScrollBoxe компоненты в виде рисунка?


14-1133729174
matt
2005-12-04 23:46
2005.12.25
Симплекс метод