powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хранение и выборка балансов предприятий
4 сообщений из 4, страница 1 из 1
Хранение и выборка балансов предприятий
    #32060369
IgorK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеем (вернее хотим иметь) базу балансов предприятий. Поделитесь, плиз опытом, кто как ее хранит. Я пробую так -
КодСтроки КодОрг. Дата Значение

Все бы ничего, но если нужно выбрать, например по 2-м датам(для сравнения) и получить в таком виде -
КодСтроки КодОрг. ЗначЗа1999 ЗначЗа2000
110 25 145.6 135.7
111 25 125.6 145.74
... и.т.д. то у меня чей-то мозги не сообразят, как такое провернуть. Кто-нибудь - наставьте на путь истинный!!!
...
Рейтинг: 0 / 0
Хранение и выборка балансов предприятий
    #32060383
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем-то, твой вариант вполне нормальный. Только вместо даты рекомендую хранить год и номер квартала.

По твоему вопросу я не до конца понял, что мы с чем сравниваем. Если баланс одной конкретной организации за разные года - то это одно. Опять же для этого случая необходимо предусмотреть индекс инфляции (если сравнение идет за несколько лет и в рублях), чтобы сравнение происходило в сопоставимых ценах.
Другой случай, если вы хотите получить свобдный баланс по всем предприятиям. Сражу скажу, что таким способом вы его не получите. Есть разделы в балансе (касаемые дебиторской и кредиторской задолженности, в частности), в которые для правильного получения сводного баланса необходимо производить его корректировку.

Если речь идет об одной организации (тогда нет необходимости выводить на каждой строке код организации), то запрос выглядит примерно так:
Код: plaintext
1.
2.
3.
4.
select U.[Код строки],  Z1999.[Значение] as За1999г, Z2000.[Значение] as За2000г
from (select [Код строки] from Balance where [Год] in ( 1999 ,  2000 ) and ([Квартал]=@Quartal) and ([Код организации]=@Code)) U
left join Balance Z1999 on U.[Код строки]=Z1999.[Код Строки] and U.[Код организации]=Z1999.[Код организации] and U.Quartal=Z1999.Quartal
left join Balance Z2000 on U.[Код строки]=Z2000.[Код Строки] and U.[Код организации]=Z2000.[Код организации] and U.Quartal=Z2000.Quartal
where Z1.[Год]= 1999  and Z1.[Год]= 2000 
...
Рейтинг: 0 / 0
Хранение и выборка балансов предприятий
    #32060384
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так не пойдет ?
select КодСтроки ,КодОрг, datepart(yyyy,Дата) ,sum(Значение)
from balans
group by КодСтроки ,КодОрг, datepart(yyyy,Дата)
...
Рейтинг: 0 / 0
Хранение и выборка балансов предприятий
    #32060400
IgorK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Garya: Есс-но я привел упрощенный вариант, для облегчения понимания моей проблемы. А вот про разные алиасы на одну таблицу я позабыл, спасибо попробую! Получается, что если нужно еще и за 3-й год вывести, то делаем еще один join Balance as bl2001 и т.д. Идея недурна на первый взгляд, посмотрю!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хранение и выборка балансов предприятий
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]