|
подзапрос с having
|
|||
---|---|---|---|
#18+
Помогите пожалуйста с запросом. Пример взят с потолка, мне главное понять технический принцип. есть две таблицы кластер и население (см. вложенный файл). Мне нужно написать запрос в котором бы выводилась информация, как на картинке1 в запросе1, только чтобы в поле sum_население суммировалось население по кластерам, т.е. чтобы например для Азии вместо 8 074 868 438,00 было бы 2 993 982 984,00 Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 10:21 |
|
подзапрос с having
|
|||
---|---|---|---|
#18+
Не надо рисовать запрос руками - Вы пока слабоваты в этом. Сделайте мастером. Создайте отдельный запрос, который считает сумму кластера в месяце (кластер-месяц-сумма_населения). Затем используйте его во втором запросе совместно с основной таблицей как источник данных. После того, как всё правильно заработает, рассмотрите/изучите каждый запрос отдельно (лишние пары скобок можно будет поудалять - но не забудьте проверить, что запрос по-прежнему работает). Затем во втором запросе замените Код: sql 1. 2.
на Код: sql 1. 2. 3.
Это и будет то, что Вы должны были нарисовать руками. Постарайтесь понять, что Вы сделали не так и почему, и почему так, как получилось - правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 11:16 |
|
подзапрос с having
|
|||
---|---|---|---|
#18+
Намучался, но сделал так как было нужно. Может кому-то будет полезно! Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 14:26 |
|
подзапрос с having
|
|||
---|---|---|---|
#18+
может проще выражение: Код: vbnet 1.
только для этого должна быть правильно создана схема БД-я не наблюдаю в тбл.население поля связи с тбл.кластер И то что Вы выкладываете со словами "Может кому-то будет полезно!"-больше так не делайте Мне то фиолетово, а вот начинающие сдуру будут думать что подобное решается именно так. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 15:46 |
|
подзапрос с having
|
|||
---|---|---|---|
#18+
sdku может проще выражение: Код: vbnet 1.
только для этого должна быть правильно создана схема БД-я не наблюдаю в тбл.население поля связи с тбл.кластер И то что Вы выкладываете со словами "Может кому-то будет полезно!"-больше так не делайте Мне то фиолетово, а вот начинающие сдуру будут думать что подобное решается именно так. Я конечно извиняюсь, но думаю, что с точки зрения классического SQL будет правильнее мой вариант. Не подумайте, что пытаюсь вас как-то боднуть, просто с научной точки зрения стало интересно какой все-таки вариант предпочтительнее. Да и таблицы у меня никак не связаны . т.е. обеспечение целостности данных не поддерживается. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 16:11 |
|
подзапрос с having
|
|||
---|---|---|---|
#18+
_s_e_r_g_e_, Твой универсальней, при переезде на MySql или MS SQL этого запроса никаких ошибок не будет, встанет как родной. А агрегатные функции типа DCount,DMax,DSum это плюшка чисто аксесовская, они тормозят работу /вычисления очень здорово, использую их только как одиночные поля на форме, для подсчета итоговых значений. В качестве вычисляемых функций, на уровне табличной формы (поля табличной формы) и увеличении количества строк приводят к слету фильтров и сортировки. Аккуратней с ними) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 16:19 |
|
подзапрос с having
|
|||
---|---|---|---|
#18+
[quot _s_e_r_g_e_#22038864] sdku Да и таблицы у меня никак не связаны . т.е. обеспечение целостности данных не поддерживается. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 16:55 |
|
подзапрос с having
|
|||
---|---|---|---|
#18+
[quot sdku#22038948] _s_e_r_g_e_ пропущено... Стесняюсь спросить:а зачем Вам тогда ACCESS. 2 таблицы-ну чем не 2 листа Ёкселя-вот в нем и работайте а Ваш подход к ACCESS абсолютно не правильный. И никакой "научной точки зрения" быть не может. Sdku, во-первых пример, как я писал выше, взят с потолка и не связан с базой ,которую я использую. Мне нужно было понять , как в подзапросе можно делать сумму нарастающим итогом по признакам. во-вторых, вы наверное в Экселе никогда не обрабатывали массивы(таблицы) данных под 100 тыс.строк и более, где будет все ужасно тормозить и могут слетать формулы. Гораздо проще , использовать Access даже если таблицы не связаны и написать единожды запрос и не беспокоиться, что у вас в какой-то ячейке слетит формула. извините за оффтоп. С уважением, Сергей ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 17:25 |
|
подзапрос с having
|
|||
---|---|---|---|
#18+
_s_e_r_g_e_ ... вы наверное в Экселе никогда не обрабатывали массивы(таблицы) данных под 100 тыс.строк и более... Совет:создайте БД,импортируйте в нее имеющиеся данные,в дальнейшем пользуйтесь ей,а не EXCEL(думаю это не займет времени больше чем Вы уже потратили,а в дальнейшем работа с данными значительно упростится) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 18:44 |
|
подзапрос с having
|
|||
---|---|---|---|
#18+
Если есть желание выложите таблицы с реальными данными в Ёкселе,если не позволяет объем-многотомный архив или на почту(адрес в профиле.Болею,сижу дома,изнываю от безделья,помогу) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 18:51 |
|
подзапрос с having
|
|||
---|---|---|---|
#18+
Помогите лучше пожалуйста с другим запросом в Access. Не могу понять почему не осуществляется группировка : мне нужно чтобы была группировка по месяцу, бренду и стране ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 20:13 |
|
подзапрос с having
|
|||
---|---|---|---|
#18+
_s_e_r_g_e_ Помогите лучше пожалуйста с другим запросом в Access. Не могу понять почему не осуществляется группировка : мне нужно чтобы была группировка по месяцу, бренду и стране ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 20:36 |
|
подзапрос с having
|
|||
---|---|---|---|
#18+
_s_e_r_g_e_ Помогите лучше пожалуйста с другим запросом в Access. Не могу понять почему не осуществляется группировка : мне нужно чтобы была группировка по месяцу, бренду и стране ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 20:40 |
|
подзапрос с having
|
|||
---|---|---|---|
#18+
Помогите лучше пожалуйста с другим запросом в Access. Не могу понять почему не осуществляется группировка : мне нужно чтобы была группировка по месяцу, бренду и стране. Ссылка на файл https://dropmefiles.com.ua/xsMS3vzV ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 20:42 |
|
подзапрос с having
|
|||
---|---|---|---|
#18+
извините месяц в группировке не нужен, вот так должно быть , только суммы не совпадают с исходными данными/ Подозреваю, что это из-за связи многие ко многим, если убрать месяц ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 20:53 |
|
подзапрос с having
|
|||
---|---|---|---|
#18+
_s_e_r_g_e_ извините месяц в группировке не нужен, вот так должно быть , только суммы не совпадают с исходными данными/ Подозреваю, что это из-за связи многие ко многим, если убрать месяц когда из первого запроса собираю второй, то все работает, но в итоге получается 2 запроса. 1 запрос SELECT plan.страна, plan.бренд, plan.объем, Sum(факт.доставлено) AS SumOfдоставлено FROM plan LEFT JOIN факт ON (plan.месяц = факт.месяц) AND (plan.бренд = факт.бренд) AND (plan.страна = факт.страна) GROUP BY plan.страна, plan.бренд, plan.объем, plan.месяц; 2 запрос SELECT Query1.страна, Query1.бренд, Sum(Query1.объем) AS SumOfобъем, Sum(Query1.SumOfдоставлено) AS SumOfSumOfдоставлено FROM Query1 GROUP BY Query1.страна, Query1.бренд; А как написать 1 запросом? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2019, 23:10 |
|
подзапрос с having
|
|||
---|---|---|---|
#18+
_s_e_r_g_e_ ... мне нужно чтобы была группировка по месяцу, бренду и стране... стран 10,брендов 2-3 (считаем3),месяцев 12 перемножаем и получаем 10*3*12=360(у Вас 240 записей-не везде 3 бренда и 12 месяцев) - что Вы хотели увидеть? -для решения задачи её, как минимум, нужно понять а я не понимаю (что за поле SumOfдоставлено-какие в нем данные?) -вычисления с плавающей точкой,в принципе,не дадут точного результата-либо денежный тип(до 4 знаков после запятой) с основным форматом,либо действительное со шкалой=количеству знаков после запятой(до 14) -такой запрос решит Ваши проблемы(как я их понял-во всяком случае показано как применять DSUM) но навряд ли будет достаточно быстрым-до тех пор пока Вы не начнете создавать БД (таблицы) по правилам и принципам ACCESS Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 01:20 |
|
подзапрос с having
|
|||
---|---|---|---|
#18+
ACCESS это СУРБД (система управления реляционными базами данных , а не отдельными таблицами) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 01:31 |
|
подзапрос с having
|
|||
---|---|---|---|
#18+
Сделал одним запросом! Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
и на выходе имеем, то что нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2019, 13:14 |
|
|
start [/forum/topic.php?fid=45&msg=39902141&tid=1610334]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
79ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 172ms |
0 / 0 |