|
помогите с запросом
|
|||
---|---|---|---|
#18+
Добрый день Подскажите как тут правильно сделать запрос. Мне нужно просуммировать кол-во инструмента в таблицах "Кому_выдан" и "Инструмент_на_списание". Такой вот запрос работает неправильно: Код: plsql 1. 2. 3.
Проблема тут в том, что в случае, когда в таблицах "Кому_выдан" и "Инструмент_на_списание" разное число строк, - сумма получается неверная. К примеру, в таблице "инструмент" только одна запись: "id_инструмент"=1, в таблице "Кому_выдан" - 2 записи: "Кому_выдан"=1 и 2, в таблице "Инструмент_на_списание" - 1 запись: "Инструмент_на_списание"=3 В результате мой запрос выдает такую таблицу: "id_инструмент"=1; "Sum-кол_во_на_руках"=3; "Sum-кол_во_на_списание"=6, а должно быть "Sum-кол_во_на_списание"=3, но так как в таблице "Кому_выдан" 2 записи, то и в "Инструмент_на_списание" он суммирует 3+3 Подскажите плиз что исправить, чтобы правильно отрабатывало ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 10:42 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Sergey8969Проблема тут в том, что в случае, когда в таблицах "Кому_выдан" и "Инструмент_на_списание" разное число строк, - сумма получается неверная. К примеру, в таблице "инструмент" только одна запись: "id_инструмент"=1, в таблице "Кому_выдан" - 2 записи: "Кому_выдан"=1 и 2, в таблице "Инструмент_на_списание" - 1 запись: "Инструмент_на_списание"=3 В результате мой запрос выдает такую таблицу: "id_инструмент"=1; "Sum-кол_во_на_руках"=3; "Sum-кол_во_на_списание"=6, а должно быть "Sum-кол_во_на_списание"=3, но так как в таблице "Кому_выдан" 2 записи, то и в "Инструмент_на_списание" он суммирует 3+3пока дочитал, чуть не ополоумел Просто приведите данные из таблиц: либо тэгом csv, либо скринами. Или лучше базой сюда, если 2003 access ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 11:01 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Прогер_самоучкапока дочитал, чуть не ополоумел сори, думал так на пальцах понятно проблему объясню) Прикрепляю пример в БД ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 11:20 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Sergey8969 Прикрепляю пример в БД "Sum-кол_во_на_спис" показывает неверное значение в Запросе1. Запрос выдает значение 6, хотя должно быть 3. Он дважды одно и то же значение суммирует. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 11:50 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Sergey8969Sergey8969 Прикрепляю пример в БД "Sum-кол_во_на_спис" показывает неверное значение в Запросе1. Запрос выдает значение 6, хотя должно быть 3. Он дважды одно и то же значение суммирует.и правильно делает ;) Ибо нужно вот так Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 11:56 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Ваша база с обновленным запросом ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 12:01 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Прогер_самоучкаи правильно делает ;) Ибо нужно вот так Спасибо! :) Да, теперь как надо работает. Это что-то вроде запроса в запросе получилось? Где можно почитать как такие запросы писать? Мне уже помогали тут с другими запросами примерно такими же методами. Я не совсем понимаю как это работает. Хочется разобраться ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 12:21 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Sergey8969Прогер_самоучкаи правильно делает ;) Ибо нужно вот так Спасибо! :) Да, теперь как надо работает. Это что-то вроде запроса в запросе получилось? Где можно почитать как такие запросы писать? Мне уже помогали тут с другими запросами примерно такими же методами. Я не совсем понимаю как это работает. Хочется разобратьсяВы пытаетесь получить сразу агрегатные значения из разных таблиц. Это неправильно. Так не будет работать. Не, запрос в запросе - это немного другое. Тут вы просто заранее агрегируете по одному из значений и группируете, и только потом джоинитесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 12:36 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Прогер_самоучкаВы пытаетесь получить сразу агрегатные значения из разных таблиц. Это неправильно. Так не будет работать. Да я понимаю, что неправильно делал, почему неправильно тоже понятно, просто не знал как отдельно сгруппировать сначала с одной таблицей, потом с другой и вывести результаты в одном запросе. Я запросы обычно создаю с помощью конструктора запросов в Аксесе. Те запросы, что создает конструктор, я еще понимаю в виде sql кода, а вот когда нужно что-то сложнее сделать - мне не понятно как что работает. Видимо, надо в изучение sql углубляться ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 13:09 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
Sergey8969Я запросы обычно создаю с помощью конструктора запросов в Аксесе.я бы подобную задачу решала через union all. примерно так Код: sql 1. 2. 3. 4. 5. 6.
и уже на этот запрос делала итоги причем все составляющие можно сделать мастером в конструкторе ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 13:21 |
|
помогите с запросом
|
|||
---|---|---|---|
#18+
[quot ПЕНСИОНЕРКА]Sergey8969я бы подобную задачу решала через union all тоже вариант, но выражение длинное получается. Получилось как-то так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2018, 14:29 |
|
|
start [/forum/topic.php?fid=45&msg=39670048&tid=1611326]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 161ms |
0 / 0 |