|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Pol123, точно! Я просто не понял Вас и думал, что для Вас это очевидно. С ув. Юрий Вопрос не в том, что очевидно для меня, вопрос в том, что очевидно для тебя. Pol123, причина-то мне понятна - мой неправильный код SQL. Подход неправильный. Тебе надо понять ПОЧЕМУ. Pol123Но как написать правильный? Упростить БД до двух таблиц (а может быть и одной), написать работающий код, потом постепенно добавлять таблицы, добиваясь работоспособности кода.. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 03:03 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
+ обрати внимание на то, что "потери" отличаются не в 4, а в 5 раз. Сравни эти значения с количеством строк данного пациента в таблицах "потери" и "инфузия" Сделай вывод о зеркальности коэффициентов. Заведи базу с тремя таблицами. БАК - код бака. Залито - код бака, залито(Л). Слито - код бака, слито(Л). Попробуй выдать запрос: код бака, литров залито, литров слито. Потом добавь в таблицу БАК поле "название бака" и сделай запрос Название бака, литров залито, литров слито. Потом добавь поле Дата в таблицы "залито" и "слито" и т.д. Я другого способа НАУЧИТЬ не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 04:52 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
При связи таблицы "Операции" с таблицами "Инфузия" и "Потери" по коду операции, происходит перебирание всех записей "Инфузия" и "Потери" между собой, т.к. коды связи для этих двух таблиц одинаковы. Например есть 2 записи инфузии и 3 записи потери. Ожидаемый эффект 2 строки с записями из обеих таблиц, третья строка только с записью потери. Но получится, что вместо третьей строки выйдут еще две строки, для которых значение потери оставшееся, а значение инфузии ранее использованное. Для этого и поставлена таблица тип и соответственно столбцы тип потери и тип инфузии. При такой связке выдаются значения отдельной строкой. Но соответственно где есть инфузия, потери приобретают значение "Null". Для того чтобы пробелов не было создаем выражение для кодов операции для последующей связи из одного столбца: если нуль инфузия, значение потери, иначе инфузия. Возможно есть другие варианты, но у меня дело привычки, поэтому как-то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 15:06 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
nikolay_magagin, спасибо большое за ответ. Интуитивно чувствую, что Ваш вариант добротный, но для меня он сложный. Я по своей наивности решил пойти, как мне показалось, простым путем, "подсмотрев кое-что в Вашем варианте": создал запрос "Инфузия", запрос "Потери" и на их основе - запрос "Инфузия минус Потери". Я очень удивился, но запрос правильно считает. Вопрос - что я сделал неправильно? Не может же быть так все просто? БД в приложении. Запрос "Инфузия минус Потери". С ув. Юрий ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 00:57 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
nikolay_magagin, вот если у кого-либо из пациентов не будет потерь или инфузии, оставляет пустое место. Как я понимаю, нужно ввести какие-то функции IIf is null ? С ув. Юрий ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 01:04 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Pol123Вопрос - что я сделал неправильно? Не может же быть так все просто? БД в приложении. Запрос "Инфузия минус Потери". С ув. Юрий Я еще раз попробую донести. Ты перескочил в обучении некий этап. В результате этого у тебя нет наглядного понимания реляционной теории. А ты уже начал проектировать БД используя подстановки, но очевидно не понимая их смысл, так как ответов на обычные наводящие вопросы от тебя нет. Данную конкретную проблему тебе помогли решить подзапросами. Но это пиррова победа. Ибо для обучения нужно осознание, которое воспитывается последовательным решением задач с нарастающей сложностью, а не решением конкретной задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 02:42 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Начни хотя бы с c http://www.sql-ex.ru/ ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 03:15 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Ты создал запрос со связями один-к-одному "Инфузия","Потери" с "Операция". В данном случае данные будут отражаться, только если заполнены любые данные по одинаковому коду операции в таблицах "Инфузия","Потери". Грубо получилось условие для запроса: выводить все строки где код операции совпадает во всех трех таблицах. Можно идти и по такому пути, но при заполнении данных например инфузии, обязательно заполнять данные потери например значением 0. В последующем надо помнить, что при появлении значения потери этот 0 надо переправить, иначе он будет сидеть в выражении всегда. При связи один-ко-многим идет перебирание всех значений по коду связи. Поэтому я и ввел код тип "Инфузия-Потери", который ограничил количество перебираний значений. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 09:40 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
nikolay_magagin, касательно нулевого значения, я ввел Nz([];0) и запрос, вроде, считает правильно. Правильно-ли я все сделал? С ув. Юрий PS С Вашими советами у меня уже что-то получается :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 00:19 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
982183, спасибо за ссылку. Я, конечно, пробую читать что-то по SQL, но, не скрою, не хватает времени. Посему и пробую создавать БД с простыми (если хотите, - примитивными) подходами, мне понятными, чтобы в случае какого-либо сбоя я мог бы сам все исправлять. С ув. Юрий ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 00:30 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
А какая задача у тебя стоит? Учебная или практическая? Область работы/учебы. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 02:08 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
982183, задача практическая. Я занимаюсь анестезией и интенсивной терапией в высоко-рисковой хирургии. Область медицины очень сложная, специалистов очень не много. Опыт накапливается большой и нужен анализ происходящего. В нашей медицине с цифрами и анализом очень плохо. А мне нужен четкий анализ нашей огромной работы, причем - в цифрах. Вот и создаю БД, самостоятельно. Раньше работал в Excell, но сейчас массив данных большой и я перешел на Access. Времени на просьбы-уговоры о помощи с разработкой БД и постановку ТЗ (объяснения, согласования...) тратилось очень много. Прикинул - проще самому. Вот и строю БД потихоньку. Первые варианты ушли в мусор, пока не понял принципы построения. В БД больше 100 таблиц, ввод данных - только через формы, с правилами проверки, с масками ввода и пр. для минимизации ошибок ввода. Очень много вложенных форм также для минимизации ошибок ввода. До начала заполнения сейчас изучаю и строю запросы, чтобы увидеть возможные ошибки на этапе разработки. Сейчас вот приходится в SQL вникать.... Вобщем, без помощи специалистов никак, вот и обращаюсь периодически с примитивными вопросами. с ув. Юрий ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 20:43 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Понятно. Значит показывай свои первичные документы, покажи откуда берутся данные для ввода в систему. После этого спроектируем БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2017, 14:46 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
А с другой стороны, если 100 таблиц уже наваяли, то тут советами не отделаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2017, 14:47 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
982183, спасибо большое за желание помочь! Я ведь уже не рассчитываю на серьезную помощь профессионалов - уж больно много "возни" с задуманной мной БД, Рад буду любому совету. БД, конечно же, вышлю, но сначала малость ее сокращу - уберу однотипные таблицы и формы для облегчения понимания (и мне так неловко будет за размер своего "монстра"). С ув. Юрий ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2017, 12:41 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Хоть стало понятно направление. А так непонятно - то ли студент курсовой пишет, то ли еще чего. Много не обещаю, инструмент не мой, практики нет, но чем сможем, коллективно поможем. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2017, 12:59 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
982183, БД в приложении. Убрал однотипные таблицы и формы (большинство- вложенные). Надеюсь, что вопросов и предложений коррекции будет много. Немного пояснений: 1) Базовая таблица «Пациент» (один пациент – одна запись), 2) Таблица «ИсторияБолезни» (у одного пациента может быть несколько историй болезни), 3) Таблица «ОперацияАнестезия» (в одной истории может быть несколько операций), 4) будет еще таблица "КартаИНтенсивнойТерапии (на одну историю - много карт ИТ), 5) Таблица «HIPEC» (только одна процедура HIPEC на одну операцию, но соединение с таблицей ОперацияАнестезия я сделал 1-ко-многим, т.к. в форму HIPEC мне нужно вложить много форм для ввода данных, и я не знаю, как оно будет работать, если я соединю таблицу ОперацияАнестезия с таблицей HIPEC связью один-к-одному). С ув. Юрий PS Не получается вычислить значение поля "Диурез HIPEC, мл/кг/час" в форме HIPEC (значение веса никак не могу получить для вычисления из таблицы "ИсторияБолезни" ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2017, 19:46 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Посмотрел. Труд конечно знатный. Вот так немного нагляднее: авторНемного пояснений: 1) Базовая таблица «Пациент» (один пациент – одна запись), 2) Таблица «ИсторияБолезни» (у одного пациента может быть несколько историй болезни), 3) Таблица «ОперацияАнестезия» (в одной истории может быть несколько операций), 4) будет еще таблица "КартаИНтенсивнойТерапии (на одну историю - много карт ИТ), 5) Таблица «HIPEC» (только одна процедура HIPEC на одну операцию, но соединение с таблицей ОперацияАнестезия я сделал 1-ко-многим, т.к. в форму HIPEC мне нужно вложить много форм для ввода данных, и я не знаю, как оно будет работать, если я соединю таблицу ОперацияАнестезия с таблицей HIPEC связью один-к-одному). PS Не получается вычислить значение поля "Диурез HIPEC, мл/кг/час" в форме HIPEC (значение веса никак не могу получить для вычисления из таблицы "ИсторияБолезни") Как вы хотите посчитать "Диурез HIPEC, мл/кг/час" (что на что умножать и делить) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2017, 11:14 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
982183, 982183, спасибо за лестную оценку, я старался (хоть и для себя). В БД масса недостатков, например, с точки зрения логичности связи таблиц. Так, таблица «ОперацияАнгестезия» связана с таблицей «HIPEC» связью одни-ко-многим, и это заведомо неправильно, т.к. за одну операцию может быть проведена только одна процедура HIPEC. Пошел на нарушение из-за того, что в форму HIPEC нужно мне вложить довольно много вложенных форм, а как это сделать при связи таблиц «ОперацияАнестезия» и «HIPEC» 1-к-1 я не знаю. А для вычисления "Диурез HIPEC, мл/кг/час" в форме «HIPEC» нужно значение поля «диурез_HIPEC» таблицы «HIPEC» (вводится в поле «Диурез за период HIPEC, мл» в форму «HIPEC») поделить на вес пациента (поле «ВесПоступ_кг» из таблицы «ИсторияБолезни») и поделить на длительность процедуры HIPEC (поле ДлитHIPEC,мин таблицы HIPEC в часах; последнее не сложно). На вес поделить проблема. С ув. Юрий ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2017, 01:11 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
982183, на длительность поделить не сложно (Диурез и длительность в одной таблице/форме HIPEC). На вес поделить сложно - вес из другой таблицы, причем не связанной непосредственно с таблицей/формой HIPEC. С ув. Юрий ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2017, 01:16 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
982183, о наглядности - я просто не умею так красиво и наглядно копировать и вставлять в форум :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2017, 01:17 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Pol123Так, таблица «ОперацияАнгестезия» связана с таблицей «HIPEC» связью одни-ко-многим, и это заведомо неправильно, т.к. за одну операцию может быть проведена только одна процедура HIPEC. Никогда не понимал целесообразность связей 1к1 (Только в случаях слишком большого количества столбцов) Добавь поля таблицы HIPEC в таблицу ОперацияАнгестезия и не мучайся, если это создает тебе проблемы ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2017, 07:37 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Pol123А для вычисления "Диурез HIPEC, мл/кг/час" в форме «HIPEC» нужно значение поля «диурез_HIPEC» таблицы «HIPEC» (вводится в поле «Диурез за период HIPEC, мл» в форму «HIPEC») поделить на вес пациента (поле «ВесПоступ_кг» из таблицы «ИсторияБолезни») и поделить на длительность процедуры HIPEC (поле ДлитHIPEC,мин таблицы HIPEC в часах; последнее не сложно). Если с промежуточными/составляющими цифрами, то вот так: Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2017, 07:55 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
982183, а как результат этого запроса видеть в форме HIPEC ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2017, 19:11 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
982183, я справился. Сделал запрос построителем для вычисления диуреза мл/кг/час, в запросе - условие отбора по коду процедуры в форме HIPEC, а в самой форме HIPEC в поле Диурез мл/кг/час - ссылку на поле запроса =DLookUp(" [ДиурезHIPECмл/кг/час]";"[HIPEC_Диурез_мл/кг/час]"). Странно, но получилось и работает. С ув. Юрий ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2017, 03:35 |
|
|
start [/forum/topic.php?fid=45&msg=39561682&tid=1611829]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
73ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 196ms |
0 / 0 |