Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос SQL / 19 сообщений из 19, страница 1 из 1
27.08.2004, 09:20:51
    #32668175
Johnny_lcool
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Товарищи, попросили на Access сделать совмещение двух таблиц.
В одной таблице собрано время начала действия, во второй время окончания этого действия. Нужно просто их совместить - одна колонка, второая колонка (рядом).

Было:
table1.DATETIME

table2.DATETIME

Стало:
table3.DT_start
table3.DT_finish

Как это сделать - на Join условие надоо вешать обязательно.
Если с коунтером делать, то вопрос как его сбросить после выборки таблиц 1 и 2 (чтоб и там и там сначала начинался). В Access я так понял в курсор выбрать данные нельзя.
...
Рейтинг: 0 / 0
27.08.2004, 09:23:05
    #32668180
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Приведи пример данных, если не сложно. А то придется гадать...
...
Рейтинг: 0 / 0
27.08.2004, 09:23:58
    #32668183
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Если хочешь 2 таблицы связать, то надо знать по чему связывать.

Вот например есть у тебя по 2 записи в каждой табле
tbl1
8:00
9:00

tbl2
18:00
19:00

как определить какое время к какому относится?
т.е. (ИМХО) надо еще поле - идентификатор события!!!
...
Рейтинг: 0 / 0
27.08.2004, 09:29:33
    #32668194
Johnny_lcool
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Они упорядочены таким образом, что в 1-ой таблице первая строка времени соответствует времени во второй таблице в 1-ой строке. Т.е. если их просто напросто связать - все будет пучком. Другой вопрос как это сделать?
...
Рейтинг: 0 / 0
27.08.2004, 09:31:14
    #32668200
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
"Время" в обеих таблицах - ключевое поле?
...
Рейтинг: 0 / 0
27.08.2004, 09:32:41
    #32668201
Johnny_lcool
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
8:00 соответствует 18:00
9:00 соответствует 19:00

Ну а идентификатор я сказал уже - можно взять из основной таблицы Каунтер, но туда попадают разные значения, а как его сбросить (чтоб считал заново) в запросе - вопрос?!
...
Рейтинг: 0 / 0
27.08.2004, 09:33:42
    #32668204
Johnny_lcool
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Нет там ключа, обе таблицы - результат запроса...
...
Рейтинг: 0 / 0
27.08.2004, 09:39:14
    #32668211
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
/topic/42244&pg=5#525976
...
Рейтинг: 0 / 0
27.08.2004, 09:42:21
    #32668220
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Johnny_lcoolОни упорядочены таким образом, что в 1-ой таблице первая строка времени соответствует времени во второй таблице в 1-ой строке. Т.е. если их просто напросто связать - все будет пучком. Другой вопрос как это сделать?

Блин - красиво жить не запретишь :)
В жизни все не так (а база у вас к жизни отношение имеет?)

Пример из жизни
Я программист пришел на работу в 8:00 (хотя рабочий день с 9, но база упала и пришлось раньше выходить)
Секретарша пришла по расписанию в 9:00
tbl1 (8:00; 9:00)

Секретарша и ушла по расписанию (18:00)
А у меня опять база упала и мне пришлось на час задержаться на работе (19:00)
tbl2 (18:00; 19:00)

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

+ Если это у вас запросом получается, то вы бы в этом запросе сразу бы и счетчик проставляли
http://www.sql.ru/faq/faq_topic.aspx?fid=214
Q7
Вот и будет у вас поле для связки :)
...
Рейтинг: 0 / 0
27.08.2004, 10:04:51
    #32668260
Johnny_lcool
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Спасибо, проблему разрешил хитрым подзапросом:
(Приведен по ссылке, которую указал Geo)
SELECT (Select Sum(1) From t AS p Where p.f<=p1.f), p1.f
FROM t AS p1
ORDER BY p1.f;

to paparome:

Мой пример из жизни, разумеется! Тока сказать не могу - давал подписку неразглашения тайны! Ты не поверишь откуда это... Мне поручили сделать это на Access потому что хотят обойтись непосредственно запросами, не прибегая к помощи процедур + я еще не авторитет, чтоб мне дали доступ к базе на Oracle.
...
Рейтинг: 0 / 0
27.08.2004, 10:08:05
    #32668267
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Johnny_lcoolСпасибо, проблему разрешил хитрым подзапросом:
Будет работать криво, если в поле f таблицы t есть повторяющиеся значения.
...
Рейтинг: 0 / 0
27.08.2004, 10:10:42
    #32668273
Johnny_lcool
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Я сейчас это и пытаюсь исправить! Но это уже все же много лучше чем ничего!!
...
Рейтинг: 0 / 0
27.08.2004, 10:25:51
    #32668313
Johnny_lcool
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Кстати, работает криво, если есть еще и условие на WHERE...
...
Рейтинг: 0 / 0
27.08.2004, 10:32:53
    #32668324
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Johnny_lcoolКстати, работает криво, если есть еще и условие на WHERE...
Это условие еще и в подзапрос надо включать

SELECT (Select Sum(1) From t AS p Where p.f<=p1.f and [условие] ), p1.f
FROM t AS p1
WHERE [условие]
ORDER BY p1.f;
...
Рейтинг: 0 / 0
27.08.2004, 11:13:23
    #32668413
Johnny_lcool
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
НЕ, вот теперь уже точно разобрался - в подзапросе должно быть условие на подсчет суммы. Если записи повторяются, то запрос, встречая первую одинаковую посчитает кол-во записей до нее, а не до той которая тркбуется. Но этого можно избежать, используя уникальное любое уникальное поле в исходной таблице - в моем случае "сбившийся" каунтер...
...
Рейтинг: 0 / 0
30.08.2004, 12:42:10
    #32670973
Johnny_lcool
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
И все-таки - возвращаясь к главному вопросу (мой первый пост) как "скрепить" 2 таблицы - Join не катит (нет там Full JOIN)...
...
Рейтинг: 0 / 0
30.08.2004, 14:52:20
    #32671390
Johnny_lcool
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Ну что, гиганты?!
...
Рейтинг: 0 / 0
31.08.2004, 09:34:56
    #32672535
Johnny_lcool
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Вот тут обсуждается аналогичная проблема - всмысле глобальной задачи, если только в качестве интервалов счетчика взять интервал по времени!

http://]http://www.sql.ru/forum/actualthread.aspx?tid=116495

Ведь есть же умный народ...
...
Рейтинг: 0 / 0
31.08.2004, 14:20:38
    #32673395
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
>Ну что, гиганты?!
>Т.е. если их просто напросто связать - все будет пучком

В реляционной базе наборы записей по определению неупорядочены, те действительно,

>Если хочешь 2 таблицы связать, то надо знать по чему связывать.

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


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