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

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

12.04.2017, 09:47. Показов 1495. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru