С Новым годом! Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 20

Запрос остатков лекарств по отделениям

12.04.2017, 09:47. Показов 1485. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. У меня есть два представления Приход(Название_отделения, название_лекарства, количество) и Расход(Название_отделения, название_лекарства, количество) и я хочу создать запрос с колонками: Название_отделения, название_лекарства, Остаток. Где Остаток это Приход.Количество-Расход.Количество. Но у меня постоянно не те результаты получаются. Запрос вроде простой но почему-то никак не получается. Вот что я пишу.
SQL
1
2
3
4
SELECT dbo.Prihod.Otdelenie, dbo.Prihod.Prihod - dbo.Rashod.rashod AS Ostatki, dbo.Prihod.Naimenovanie
FROM dbo.Prihod INNER JOIN dbo.Rashod ON dbo.Prihod.Naimenovanie = dbo.Rashod.Naimenovanie AND dbo.Prihod.Otdelenie = dbo.Prihod.Otdelenie 
WHERE dbo.Prihod.Prihod - dbo.Rashod.rashod>0
GROUP BY dbo.Prihod.Otdelenie, dbo.Prihod.Naimenovanie,dbo.Prihod.Prihod - dbo.Rashod.rashod
Из результатов запроса я понял что нужно чтобы из комбинации отделения-лекарство из Прихода вычиталась соответствующая комбинация из Расхода, но как этого добиться не могу понять. Возможно нужен какой-то другой join или как то делать комбинации уникальными в представлениях?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.04.2017, 09:47
Ответы с готовыми решениями:

Запрос остатков 1С 8.2
Всем привет! Может кто делал запрос остатков номенклатуры? Поделитесь пожалуйста..

Запрос Остатков 1с 8.2
Всем салют =) Как можно сделать запрос остатков номенклатуры? Код привожу ниже но он явно не верный мог бы кто подправить пожалуйста.....

SQL запрос на вычисление остатков
Добрый вечер. В БД (mdb) имеется таблица Регистр. В ней следующая структура: Дата | Магазин | ВидТовара | Операция | Колво ...

14
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
12.04.2017, 10:20
в представлении уже сгруппированные данные? Текст запроса представления показали бы

Добавлено через 3 минуты
Цитата Сообщение от VovaZZ Посмотреть сообщение
AND dbo.Prihod.Otdelenie = dbo.Prihod.Otdelenie
а где здесь Rashod?
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
12.04.2017, 11:16
Лучший ответ Сообщение было отмечено VovaZZ как решение

Решение

T-SQL
1
2
3
4
5
6
7
select
 a.Otdelenie, a.Naimenovanie, a.Prihod - isnull(b.Rashod, 0)
from
 (select Otdelenie, Naimenovanie, sum(Prihod) as Prihod) from dbo.Prihod group by Otdelenie, Naimenovanie) a left join
 (select Otdelenie, Naimenovanie, sum(Rashod) as Rashod) from dbo.Rashod group by Otdelenie, Naimenovanie) b on b.Otdelenie = a.Otdelenie and b.Naimenovanie = a.Naimenovanie
where 
 a.Prihod > isnull(b.Rashod, 0);
1
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
12.04.2017, 11:31
invm, GROUP BY будет не нужен?
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
12.04.2017, 11:45
Цитата Сообщение от YuryK Посмотреть сообщение
GROUP BY будет не нужен?
Для чего? Соединяются два набора по уникальному (Otdelenie, Naimenovanie)
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
12.04.2017, 12:06
Цитата Сообщение от invm Посмотреть сообщение
Для чего
для sum
без этого обычно is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

Добавлено через 1 минуту
если они уникальные, зачем SUM?
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
12.04.2017, 12:08
YuryK, вы где group by хотите расположить?
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
12.04.2017, 12:08
invm,
union all и агрегаты вынести из подзапроса не быстрее будет?
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
12.04.2017, 13:23
pincet, возможно. Как говорится: "зависит от".

Добавлено через 1 минуту
Цитата Сообщение от YuryK Посмотреть сообщение
для sum
Посмотрите внимательно на sum в предложенном запросе.
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
12.04.2017, 14:38
Цитата Сообщение от invm Посмотреть сообщение
Посмотрите внимательно на sum в предложенном запросе.
на запрос с двумя открывающимися и четырьмя закрывающимися скобками сложно смотреть внимательно
0
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 20
12.04.2017, 14:45  [ТС]
Спасибо большое. Запрос такого вида работает как нужно:
T-SQL
1
2
3
4
5
6
select
 dbo.Prihod.Otdelenie, dbo.Prihod.Naimenovanie, dbo.Prihod.Prihod - isnull(dbo.Rashod.Rashod, 0)as Ostatki
from
  dbo.Prihod left join
 dbo.Rashod on dbo.Rashod.Otdelenie = dbo.Prihod .Otdelenie and dbo.Rashod.Naimenovanie = dbo.Prihod .Naimenovanie
where dbo.Prihod.Prihod > isnull(dbo.Rashod.Rashod, 0);
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
12.04.2017, 14:52
Цитата Сообщение от YuryK Посмотреть сообщение
на запрос с двумя открывающимися и четырьмя закрывающимися скобками сложно смотреть внимательно
Ну не смотрите и продолжайте считать, что ошибочные скобки маскируют group by.
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
12.04.2017, 15:02
для меня замаскировали, я подсознательно бросил читать дальше закрывающей скобки.
Сервер тоже не поймет, хотя и по другой причине
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
12.04.2017, 15:04
я подсознательно увидел from и не заметил скобку....
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
12.04.2017, 15:05
подсознание - оно такое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.04.2017, 15:05
Помогаю со студенческими работами здесь

Запрос с вычитанием(расчет остатков)
Доброго времени суток У меня есть два запроса , --один с приходом товара, --другой с уходом товара. И я создал третий что в...

1C 7.7 Запрос на получение остатков по счетам
Добрый день! Так получилось, что пути с семеркой пересеклись впервые. Пишу обработки для переноса данных в самописную конфигурацию. По...

Получение остатков регистра через запрос
Здравствуйте. Нужно получить количественный остаток номенклатуры из регистра "ОстаткиТМЦ". Код приведён ниже. Постоянно...

Распределение газет по почтовым отделениям
Такая система должна обеспечивать хранение, просмотр и изменение сведений о газетах, почтовых отделениях, получающих газеты и о...

Как спроектиповать учета больных по отделениям
В системе должны поддерживаться режимы учета больных --по отделениям, --заболеваниям, --сложности заболевания и --количеству...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru