Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Сумма по счету  [new]
Алексей_tuv
Member

Откуда:
Сообщений: 2
Добрый день!
Помогите решить проблему. Необходимо сделать отчет для бух., в котором будет фигурировать итоги за любой промежуток. Проблема заключается в следующем, есть таблица план счетов:
номер счнаим.счет
20-001счет1
20-002счет2
20-003счет3

А операции совершаемые по данным счетам записываются в таблицу так:
счетнаименование операциисумма
20-001-1покупка материалов2000
20-001-2зарплата Иванов ИИ5000
20-001-3Амортизация1700
20-001-4прочие расходы1000

Как получить отчет вида:
счетнаим.счетсумма
20-001счет19700
9 окт 09, 07:50    [7762205]     Ответить | Цитировать Сообщить модератору
 Re: Сумма по счету  [new]
aleks2
Guest
select T.[счет], T.[наим.счет], SUM(O.[сумма]) [сумма]
FROM 
[таблица план счетов] T
INNER JOIN
[операции совершаемые по данным счетам записываются в таблицу так] O
on
O.[счет] like T.[счет]+'%'
GROUP BY
T.[счет], T.[наим.счет]

Савсем не учились или пары прогуливали?

PS: "в котором будет фигурировать итоги за любой промежуток" сделать НИЗЗЯ ибо дат я не узрил...
9 окт 09, 08:15    [7762227]     Ответить | Цитировать Сообщить модератору
 Re: Сумма по счету  [new]
Алексей_tuv
Member

Откуда:
Сообщений: 2
а ларчик просто открывался, совсем забыл про
+'%'
, с датами я разобрался. спасибо большое.
9 окт 09, 08:24    [7762239]     Ответить | Цитировать Сообщить модератору
 Re: Сумма по счету  [new]
Ох...ий программизд
Guest
Алексей_tuv,

declare @Accounts table (
	NumAcc nvarchar(20),
	NameAcc nvarchar(20))
	
declare @Operations table (
	Account nvarchar(20),
	NameOper nvarchar(100),
	SumOper int)

insert @Accounts values ('20-001', 'счет1')
insert @Accounts values ('20-002', 'счет2')
insert @Accounts values ('20-003', 'счет3')

insert @Operations values ('20-001-1', 'покупка материалов', 2000)
insert @Operations values ('20-001-2', 'зарплата Иванов ИИ', 5000)
insert @Operations values ('20-001-3', 'Амортизация', 1700)
insert @Operations values ('20-001-4', 'прочие расходы', 1000)
insert @Operations values ('20-002-1', 'совсем прочие расходы', 4000)
insert @Operations values ('20-002-2', 'совсем-совсем прочие расходы', 4000)


select
	a.NumAcc 'счет',
	a.NameAcc 'наим.счет',
	sum(o.SumOper) 'сумма'
from @Operations o
inner join @Accounts a on left(o.Account, len(a.NumAcc)) = a.NumAcc
group by a.NumAcc, a.NameAcc
9 окт 09, 08:25    [7762241]     Ответить | Цитировать Сообщить модератору
 Re: Сумма по счету  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
DECLARE  @t TABLE ([номер сч]varchar(16),[наим.счет] varchar(16))
INSERT INTO @t([номер сч],[наим.счет])
SELECT '20-001','счет1' UNION ALL
SELECT '20-002','счет2' UNION ALL
SELECT '20-003','счет3'

DECLARE @t1 TABLE ([счет]varchar(16),[наименование операции] varchar(256),[сумма] int)

INSERT INTO @t1([счет],[наименование операции],[сумма])
SELECT '20-001-1','покупка материалов', 2000 UNION ALL
SELECT '20-001-2','зарплата Иванов ИИ', 5000 UNION ALL
SELECT '20-001-3','Амортизация', 1700 UNION ALL
SELECT '20-001-4','прочие расходы', 1000 


SELECT t0.[номер сч],t0.[наим.счет],SUM(t1.[сумма])  FROM @t1 AS t1
INNER JOIN @t AS t0 ON left(t1.[счет], len(t0.[номер сч])) = t0.[номер сч]
GROUP BY t0.[номер сч],t0.[наим.счет]
---------------------------------------------------------
- Ну вы тут и нафлудили! - сказал Геракл, зайдя на Авгиев форум.
9 окт 09, 08:34    [7762258]     Ответить | Цитировать Сообщить модератору
 Re: Сумма по счету  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
упс... опоздал...
---------------------------------------------------------
- Ну вы тут и нафлудили! - сказал Геракл, зайдя на Авгиев форум.
9 окт 09, 08:36    [7762261]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить