powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите чайнику, пожалуйста (+)
6 сообщений из 6, страница 1 из 1
Помогите чайнику, пожалуйста (+)
    #32038291
montanero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые! Досталось вот наследство, а как подступиться, по чайниковости своей, не знаю, не пинайте новичка помогите, кто чем может: Есть несколько таблиц, надо получить сводный отчет.

table t_schet( id_schet integer Identity)
table t_vipiska(id_vipiska integer, _date smalldatetime, schet integer FK references t_schet.id_schet , vhod numeric(20,4), debet numeric(20,4), credit numeric(20,4), ishod numeric(20,4) )
table t__provodka(id_provodka integer identity, _date smalldatetime, summa numeric(20,4), schet_out integer FK references t_schet.id_schet ,schet_in integer FK references t_schet.id_schet , vipiska_out integer, vipiska_in integer )


По каждому счету делаются проводки, результат которых отражается в выписке (одна на каждую дату для одного счета), а в проводке указывается, в какой выписке она "участвует". Так вот, требуется составить оборот по данному счету за некий период (начало, конец), чтобы выглядело это примерно так:

ДатаНачала ВходящееСальдо Дебет Кредит
_________________________сумма1
_________________________сумма2
_________________________суммаN
_________________________________сумма1
_________________________________сумма2
_________________________________сумма1N
ДатаОкончания ___________________________ Исходящее
ДатаНачала2 etc etc

Проблема еще в том, что все это нужно всунуть в один recordset, обязятельно, т.е. напротив сумма1 должен быть NULL, как я понимаю, или что-то подобное... Может, это реализуется как view, а потом уже оттуда селектить, не знаю, помогите, а? (очень-очень нужно)
...
Рейтинг: 0 / 0
Помогите чайнику, пожалуйста (+)
    #32038356
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый montanero!
На будущее, пожалуйста, старайтесь более понятно оформлять данные.
Ох, как трудно работать с ненормализованными базами...
Половина вопросов форума о хитрых запросах именно из-за этого.
Это не к Вам, у Вас наследство...

ГДЕ у Вас основная информация о сумме операции? В t__provodka? А зачем
нужны debet numeric(20,4) и credit numeric(20,4)? Там та же сумма?
Я так понял, что summa numeric(20,4), всегда положительное число?

Мне не очень понятно о каких счетах идет речь. Это бухгалтеские счета, или номера документов?
С толку сбивает
table t_schet(
id_schet integer Identity
)
Под schet_out - schet_in подразумевается счет кредита-дебета? Но почему они int...

А что такое vhod и ichod? Именно это и есть бухгалтерские счета?

Пожалуйста, дайте структуру с комментариями.

(Специально для завсегдатаев. А не слишком ли я туп? Правда жена еще не приехала, зато мать уехала. Есть уважительная причина у сироты.)

Конкретно ничего не могу написать, но вот стратегия создания оборотно-сальдовой ведомости

Select sum(Debet-Credit) as SaldoIn,
cast(0 as numeric(20,4) as Debet,
cast(0 as numeric(20,4) as Credit
into #temp where _Date <@StartDate

union

Select cast(0 as numeric(20,4),
sum(Debet),
cast(0 as numeric(20,4)
where _Date between @StartDate and @EndDate

union

Select cast(0 as numeric(20,4),
cast(0 as numeric(20,4),
sum(Debet)
where _Date between @StartDate and @EndDate

select sum(SaldoIn) as SaldoIn, sum(Debet) as Debet, sum(Credit) as Credit from #temp

Писано на коленке, поэтому возможны синтаксические ошибки.
...
Рейтинг: 0 / 0
Помогите чайнику, пожалуйста (+)
    #32038367
montanero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Направление понял, спасибо! Оказывается все проще, чем я думал...

Так, с пояснениями: В описаниях таблиц указаны не все поля, только те, которые нужны в данном случае, поэтому могли возникнуть вопросы. Это бух. проводки...


debet и credit нужны вот зачем - это общие обороты по счету, дебет и кредит, соответственно, выписка может формироваться из нескольких проводок, тогда debet и credit суммируются, по отдельности, естественно. Это, скорее, справочная информация.

summa - да, положительное.

schet_out и schet_in - это id счета, одна и та же проводка фигурирует в двух выписках, два счета участвуют, для одного эта сумма проходит по дебету, для другого по кредиту, больше ни в каких выписках эта проводка считаться, естественно, не может.

Несколько сумбурно, извиняйте....

И еще раз - Спасибо!

Буду рад любым другим мыслям\домыслам\советам\критике.
...
Рейтинг: 0 / 0
Помогите чайнику, пожалуйста (+)
    #32038690
montanero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
No other suggestions?
...
Рейтинг: 0 / 0
Помогите чайнику, пожалуйста (+)
    #32038694
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
After Cat2...?
...
Рейтинг: 0 / 0
Помогите чайнику, пожалуйста (+)
    #32038717
montanero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Why not? Two professionals - three opinions...

Я имел в виду, может, другие подходы есть к таким проблемам. А еще по поводу того, что "не надо так делать" - понятно, не надо... а вот хотелось бы узнать, _как_ надо... ( понимаю, что наглость, но все же...)

С уважением ко всем участникам.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите чайнику, пожалуйста (+)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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