Форум: "Начинающим";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];
ВнизЗапрос на базе нескольких таблиц в 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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.03 c