|
Выборка значений из двух таблиц
|
|||
---|---|---|---|
#18+
Доброго времени суток! Прошу помочь с составлением запроса для выборки подсчитанных строк. Таблицы devices, details, dev_history. Необходимо произвести выборку количества строк из details в один столбец и из dev_history в другой столбец. Зависимости: (один) devices.dev_id ------> (ко многим) details.dev_id (один) details.id ------> (ко многим) dev_history.d_id С помощью конструктора получается запрос такого вида: Код: sql 1. 2. 3. 4.
Получаю результат: devicetype Count-id Count-h_id device1 50 50device2 20 20device3 40 40 Т.е. все значения в обоих столбцах получаются одинаковыми и совсем неверными. Заранее благодарен! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 22:14 |
|
Выборка значений из двух таблиц
|
|||
---|---|---|---|
#18+
bravo82 привет выложи маленький mdb-файл (формат 2003) с небольшим количеством строк и только с этими таблицами ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 23:27 |
|
Выборка значений из двух таблиц
|
|||
---|---|---|---|
#18+
Вам нужно вместо таблицы dev_history использовать запрос (сохраненный или вложенный) с группировкой по d_id и Count(dev_history.h_id) AS [Count-h_id]. В основном запросе написать FIRST([Count-h_id]) As [Count-h_id]. Кроме того: 1. Вероятно в таблице dev_history может не быть записей для какого-то details.id, поэтому вместо INNER JOIN лучше применить LEFT JOIN; 2. В вашем запросе логичнее (работает быстрее) вместо HAVING лучше применить WHERE (условие должно быть перед GROUP BY). ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2016, 10:01 |
|
Выборка значений из двух таблиц
|
|||
---|---|---|---|
#18+
Выкладываю файл в 2007. В 2003 перевожу, что-то ругается. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2016, 20:25 |
|
Выборка значений из двух таблиц
|
|||
---|---|---|---|
#18+
Видимо проблема серьезная. Может есть какие варианты? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2016, 21:43 |
|
Выборка значений из двух таблиц
|
|||
---|---|---|---|
#18+
bravo82В 2003 перевожу, что-то ругается.Потому что чистить базу надо от ненужного хлама перед выкладыванием. Там небось формы/отчёты/прочее, для вопроса нафиг ненужное, как лежало, так и лежит... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2016, 22:35 |
|
Выборка значений из двух таблиц
|
|||
---|---|---|---|
#18+
Akina, ) Да нет там ничего, 3 таблицы и запрос один. Так проблема все-таки в версии? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2016, 23:23 |
|
Выборка значений из двух таблиц
|
|||
---|---|---|---|
#18+
bravo82нет там ничего, 3 таблицы и запрос один.Тогда игнорируй "ругань". ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2016, 23:40 |
|
Выборка значений из двух таблиц
|
|||
---|---|---|---|
#18+
Файл в формате Access 2003 - dbaccess.mdb ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2016, 20:44 |
|
Выборка значений из двух таблиц
|
|||
---|---|---|---|
#18+
bravo82Таблицы devices, details, dev_history. Таблица details не найдена. Найдена таблица points. Если представить, что points - это на самом деле details, то Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2016, 22:12 |
|
Выборка значений из двух таблиц
|
|||
---|---|---|---|
#18+
Akina, Просто супер!!! Большое спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2016, 19:15 |
|
Выборка значений из двух таблиц
|
|||
---|---|---|---|
#18+
Akina, Добавил в таблицу dev_history поле r_date (сразу не подумал почему-то), теперь не получается правильный запрос с условием заданного периода between . SELECT devices.devicetype, Count(points.id) AS points_count, q1.[Count-h_id] AS dev_history_count FROM (devices INNER JOIN (SELECT devices.dev_id, Count(dev_history.h_id) AS [Count-h_id] FROM (devices INNER JOIN points ON devices.dev_id=points.dev_id) INNER JOIN dev_history ON points.id=dev_history.d_id WHERE q1.[r_date] between #01/01/2015# and #12/31/2015# GROUP BY devices.dev_id) AS q1 ON devices.dev_id = q1.dev_id) INNER JOIN points ON devices.dev_id = points.dev_id GROUP BY devices.devicetype, q1.[Count-h_id]; Но ничего не меняется... Прошу помочь добить задачу. Заранее благодарен Вам. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2016, 20:05 |
|
|
start [/forum/topic.php?fid=45&msg=39327991&tid=1613009]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 334ms |
total: | 465ms |
0 / 0 |