|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Pol123982183, а простыми словами - нужно сумму инфузии, которая получается в запросе после суммирования значений по каждой операции, поделить на вес пациента. С ув. Юрий Не "сумму инфузии", а "сумму инфузий" Т.Е. все инфузии пациента делим на его вес. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2017, 00:45 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Снова вру. "Сумма инфузий в разрезе операций пациента" Соответственно группировка должна быть "Пациент" + "Операция" А у тебя группировка "Фамилия Пациента" + "Дата операции" На твоем наборе данных это несущественно, но на реальной задаче будет жопа. Есть и однофамильцы, есть и несколько операций в день Далее - "Вес" в группировке вещь с одной стороны бессмысленная, а с другой стороны не надо применять агрегатную функцию при расчете. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2017, 03:16 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
+ в таблице "инфузия" стоит завести ключевое поле, и в "ИнфузияСписок" хранить именно его, а не текстовое значение. В существующем виде несомненно работает, но сильно некошерно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2017, 04:17 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Снова вру В таблице "инфузияСписок" стоит завести ключевое поле, и в "Инфузия" хранить именно его, а не текстовое значение. В существующем виде несомненно работает, но сильно некошерно. + Сейчас в имеющемся запросе подключение "инфузияСписок" бессмысленно, так как название есть в "Инфузия". и ты не используешь название препарата в запросе. + В "Инфузия" в поле "КодИнфузии" стоит фамилия ???? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2017, 04:30 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
982183, не все комментарии понял (в смысле - как и что менять), поэтому спрошу: что мне изменить, чтобы получить вот такой результат запроса ? (в приложении) С ув. Юрий ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2017, 12:37 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Pol123, не приложился ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2017, 12:38 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
982183, у меня, кажется, получилось! Вот два варианта работающего кода SELECT Пациент.ФИО, Операция.ДатаОперации, Sum(Инфузия.ИнфузияСписок_мл) AS [Sum-ИнфузияСписок_мл], ИсторияБолезни.Вес, Sum([ИнфузияСписок_мл])/[Вес] AS [мл/кг] FROM Пациент INNER JOIN ((ИсторияБолезни INNER JOIN Операция ON ИсторияБолезни.КодИсторииБолезни = Операция.ИсторияБолезни) INNER JOIN (Инфузия INNER JOIN ИнфузияСписок ON Инфузия.ИнфузияСписок = ИнфузияСписок.ИнфузияСписок) ON Операция.КодОперации = Инфузия.КодИнфузии) ON Пациент.КодПациента = ИсторияБолезни.Пациент GROUP BY Пациент.ФИО, Операция.ДатаОперации, ИсторияБолезни.Вес; SELECT Пациент.ФИО, Операция.ДатаОперации, Sum(Инфузия.ИнфузияСписок_мл) AS [Sum-ИнфузияСписок_мл], ИсторияБолезни.Вес, Sum(Инфузия.ИнфузияСписок_мл)/[Вес] AS Выражение1 FROM Пациент INNER JOIN ((ИсторияБолезни INNER JOIN Операция ON ИсторияБолезни.КодИсторииБолезни = Операция.ИсторияБолезни) INNER JOIN (Инфузия INNER JOIN ИнфузияСписок ON Инфузия.ИнфузияСписок = ИнфузияСписок.ИнфузияСписок) ON Операция.КодОперации = Инфузия.КодИнфузии) ON Пациент.КодПациента = ИсторияБолезни.Пациент GROUP BY Пациент.ФИО, Операция.ДатаОперации, ИсторияБолезни.Вес; Мне правильно нужно было использовать скобки! В Select последнее поле С ув. Юрий ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2017, 18:42 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Вот так научись делать: Код: sql 1. 2. 3.
Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2017, 03:38 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
И то херня нечитаемая получилась. Вот за что ненавижу Access, так это за нечитаемость листинга. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2017, 04:39 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
982183, спасибо за помощь! Но если с вычислением и группировкой по одному полю в SQL у меня что-то получается, то вот с JOIN и группировкой по двум полям, точно, ерунда какая-то у меня получается. Помогите, пожалуйста, исправить запрос, чтобы суммировалось и группировалось правильно. В приложении в той же БД создал один запрос, но суммируется неправильно. Спасибо. С ув. Юрий ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2017, 05:25 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Ты вводишь новые сущности, не поясняя их. Ставишь задачи, не формализуя их. "Потери" что это, зачем. Почему код "потери" связан с "кодом операции" Почему потеря не связана с инфузией. В ней хранятся мл, но не указан вид лекарства. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2017, 06:30 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Pol123, Вам предложена схема БД,но считаете что она сложна,не смотря на то,что все дополнительные "хотелки" в ней осуществимы-в существующей же любая попытка что-либо дополнить вызовет проблемы(да и создание одного запроса вызывает 6 дневные проблемы-хотя создать новую базу,"без красивостей", минут 30-60 и перенести данные,в зависимости от их количества,от 5 до 30 минут-итого 1,5 часа вместо уже убитых 6 дней ( имейте ввиду что группировка в запросе по отдельно взятому полю не возможна-только по всем полям,кроме тех,в которых групповая операция). Если есть желание изложите задачу,желательно подробно.чтоб не было уточняющих вопросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2017, 11:41 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
982183, с операцией связана как инфузия, так и потери, т.к. во время операции имеют место как введение жидкости в организм (инфузия), так и потери жидкости из организма (кровотечение, жидкость из полостей, моча и пр.). Оба параметра (инфузия и потери) приходиться учитывать в лечении. Но еще нужна разница между введенным к-вом жидкости за операцию (инфузия) и выведенным к-вом жидкости за операцию (потери) - так называемый баланс жидкости. И при этом важно знать каков этот баланс в пересчета на кг веса пациента (2 литра для 40-кг пациента - много и опасно, а для 140-кг пациента - не много и не опасно). Вот - суть запроса, который я пытаюсь "смастерить". Буду признателен, если поможете. С ув. Юрий ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2017, 22:24 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Давай сначала. Захожу в таблицу "ОПЕРАЦИЯ" Код: plaintext 1. 2. 3.
Захожу в таблицу "ПОТЕРИ" Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Причем Операция.КодОперации=Потери.КодПотери Но в "Операция" цифры, а в "Потери" фамилии. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2017, 03:24 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
982183, я не понимаю, что Вы хотите сказать (я SQLем-то 2 недели, как пользуюсь). Мне бы получить запросом результат следующего вида: ФИО пациента ! Вес пациента ! Дата операции ! Сумма инфузии за операцию ! Сумма потерь за операцию ! Разница инфузии и потерь за операцию ! мл/кг. Мне показалось, что Вы в коде поправите суммирование, JOIN и группировку, и все получится. Я сам с этими JOINами не справлюсь, т.к. в в объединяемых таблицах разное кол-во строк в полях Инфузия и Потери для суммирования. С ув. Юрий ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2017, 21:28 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
982183, если запрос с JOINом делать только по одному полю (или только по Потерям или только по Инфузии), я справляюсь. И Вы научили, и в лит-ре масса примеров. Но по двум полям разных таблиц не получается. То ли JOINы не те и не так использую, то ли подзапросы не могу ввести, то ли еще что .... С ув. Юрий ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2017, 21:33 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Pol123Помогите, пожалуйста, исправить запрос, чтобы суммировалось и группировалось правильно. Какая конкретно цифра тебе не нравится? Какую цифру ты считаешь неправильной? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 03:18 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Pol123Но по двум полям разных таблиц не получается. То ли JOINы не те и не так использую, то ли подзапросы не могу ввести, то ли еще что .... С ув. Юрий Так таблиц у тебя СЕМЬ. И соответственно решать надо не простейшие вопросы с запросами. А более фундаментальные вещи, связанные с проектированием БД и с их нормализацией, с ключами таблиц и их связями. Слишком большая/сложная/объемная у тебя структура данных для учебного примера этого(начального) уровня. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 05:30 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Посмотри может поможет. Переход в отчете по номеру №. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 16:26 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
982183, Вы спросили: «Какая конкретно цифра тебе не нравится? Какую цифру ты считаешь неправильной?» Неправильные получаются цифры в моем запросе, а именно – с ошибкой суммируются потери и инфузия. А запрос хотел получить такого вида: ФИО пациента ! Вес пациента ! Дата операции ! Сумма инфузии за операцию ! Сумма потерь за операцию ! Разница инфузии и потерь за операцию ! мл/кг С ув. Юрий ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 00:07 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
nikolay_magagin, спасибо большое! Работа - неожиданно огромная! Вы точно поняли, что я хотел получить своим запросом. Пошел изучать Ваш вариант. Изучать на предмет, смогу ли адаптировать к своей БД, т.к. вижу, что Вы изменили поля таблиц... Буду пробовать. Спасибо еще раз! С ув. Юрий ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 00:12 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
Pol123982183, Вы спросили: «Какая конкретно цифра тебе не нравится? Какую цифру ты считаешь неправильной?» Неправильные получаются цифры в моем запросе, а именно – с ошибкой суммируются потери и инфузия. С ув. Юрий Вообще то я хотел получить от тебя ответ типа: Иванов Фактическая инфузия - 1900 инфузия в запросе - 7600 Отсюда надо сделать вывод, что увеличение в 4 раза. А после этого искать причину. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 01:04 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
nikolay_magagin, посмотрел Ваш вариант, спасибо большое! Итог запроса - как я и хотел. Но, я извиняюсь, есть два вопроса: 1) можно ли в таблицах Инфузия и Потери обойтись без поля Тип? и 2) можно ли обойтись без добавленных Вами поля [Код_операции_инфузии] в таблице Инфузия и без поля [Код_операции_потери] в таблице Потери? Вопрос обусловлен моим начальным уровнем и желанием упростить свою БД. Еще раз извиняюсь за вопросы. С ув. Юрий. PS В приложении - Ваша вариант, в котором я ввел данные для удобства оценки результата запроса, и оставил нужные мне формы в планируемом мной виде (вложенные формы) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 01:55 |
|
как просуммировать строки в запросе
|
|||
---|---|---|---|
#18+
982183, точно! Я просто не понял Вас и думал, что для Вас это очевидно. С ув. Юрий ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 01:57 |
|
|
start [/forum/topic.php?fid=45&msg=39559386&tid=1611829]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 167ms |
0 / 0 |