|
|
|
Запрос SQL
|
|||
|---|---|---|---|
|
#18+
Товарищи, попросили на Access сделать совмещение двух таблиц. В одной таблице собрано время начала действия, во второй время окончания этого действия. Нужно просто их совместить - одна колонка, второая колонка (рядом). Было: table1.DATETIME table2.DATETIME Стало: table3.DT_start table3.DT_finish Как это сделать - на Join условие надоо вешать обязательно. Если с коунтером делать, то вопрос как его сбросить после выборки таблиц 1 и 2 (чтоб и там и там сначала начинался). В Access я так понял в курсор выбрать данные нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 09:20:51 |
|
||
|
Запрос SQL
|
|||
|---|---|---|---|
|
#18+
Приведи пример данных, если не сложно. А то придется гадать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 09:23:05 |
|
||
|
Запрос SQL
|
|||
|---|---|---|---|
|
#18+
Если хочешь 2 таблицы связать, то надо знать по чему связывать. Вот например есть у тебя по 2 записи в каждой табле tbl1 8:00 9:00 tbl2 18:00 19:00 как определить какое время к какому относится? т.е. (ИМХО) надо еще поле - идентификатор события!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 09:23:58 |
|
||
|
Запрос SQL
|
|||
|---|---|---|---|
|
#18+
Они упорядочены таким образом, что в 1-ой таблице первая строка времени соответствует времени во второй таблице в 1-ой строке. Т.е. если их просто напросто связать - все будет пучком. Другой вопрос как это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 09:29:33 |
|
||
|
Запрос SQL
|
|||
|---|---|---|---|
|
#18+
"Время" в обеих таблицах - ключевое поле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 09:31:14 |
|
||
|
Запрос SQL
|
|||
|---|---|---|---|
|
#18+
8:00 соответствует 18:00 9:00 соответствует 19:00 Ну а идентификатор я сказал уже - можно взять из основной таблицы Каунтер, но туда попадают разные значения, а как его сбросить (чтоб считал заново) в запросе - вопрос?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 09:32:41 |
|
||
|
Запрос SQL
|
|||
|---|---|---|---|
|
#18+
Нет там ключа, обе таблицы - результат запроса... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 09:33:42 |
|
||
|
Запрос SQL
|
|||
|---|---|---|---|
|
#18+
/topic/42244&pg=5#525976 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 09:39:14 |
|
||
|
Запрос SQL
|
|||
|---|---|---|---|
|
#18+
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 Вот и будет у вас поле для связки :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 09:42:21 |
|
||
|
Запрос SQL
|
|||
|---|---|---|---|
|
#18+
Спасибо, проблему разрешил хитрым подзапросом: (Приведен по ссылке, которую указал 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 10:04:51 |
|
||
|
Запрос SQL
|
|||
|---|---|---|---|
|
#18+
Johnny_lcoolСпасибо, проблему разрешил хитрым подзапросом: Будет работать криво, если в поле f таблицы t есть повторяющиеся значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 10:08:05 |
|
||
|
Запрос SQL
|
|||
|---|---|---|---|
|
#18+
Я сейчас это и пытаюсь исправить! Но это уже все же много лучше чем ничего!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 10:10:42 |
|
||
|
Запрос SQL
|
|||
|---|---|---|---|
|
#18+
Кстати, работает криво, если есть еще и условие на WHERE... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 10:25:51 |
|
||
|
Запрос SQL
|
|||
|---|---|---|---|
|
#18+
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; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 10:32:53 |
|
||
|
Запрос SQL
|
|||
|---|---|---|---|
|
#18+
НЕ, вот теперь уже точно разобрался - в подзапросе должно быть условие на подсчет суммы. Если записи повторяются, то запрос, встречая первую одинаковую посчитает кол-во записей до нее, а не до той которая тркбуется. Но этого можно избежать, используя уникальное любое уникальное поле в исходной таблице - в моем случае "сбившийся" каунтер... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2004, 11:13:23 |
|
||
|
Запрос SQL
|
|||
|---|---|---|---|
|
#18+
И все-таки - возвращаясь к главному вопросу (мой первый пост) как "скрепить" 2 таблицы - Join не катит (нет там Full JOIN)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2004, 12:42:10 |
|
||
|
Запрос SQL
|
|||
|---|---|---|---|
|
#18+
Вот тут обсуждается аналогичная проблема - всмысле глобальной задачи, если только в качестве интервалов счетчика взять интервал по времени! http://]http://www.sql.ru/forum/actualthread.aspx?tid=116495 Ведь есть же умный народ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 09:34:56 |
|
||
|
Запрос SQL
|
|||
|---|---|---|---|
|
#18+
>Ну что, гиганты?! >Т.е. если их просто напросто связать - все будет пучком В реляционной базе наборы записей по определению неупорядочены, те действительно, >Если хочешь 2 таблицы связать, то надо знать по чему связывать. Если есть два упорядоченных набора, то связывать их надо без SQL, тк SQL с упорядоченными наборами работать не умеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 14:20:38 |
|
||
|
|

start [/forum/topic.php?fid=45&tid=1672085]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 378ms |

| 0 / 0 |
