Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сложный расчет. Ассеss 37
 
 автор: jaw   (06.08.2007 в 19:40)   личное сообщение
 
 

Наверное тупой вопрос. Есть таблица: ФИО, НАЧИСЛЕНИЯ, ДАТА НАЧИСЛЕНИЯ. Есть запрос по ней, где в условии отбора по полю ФИО введено [Введите Фамилию]. Есть ОТЧЕТ в который надо вывести инфу по 1 чел. ПРОБЛЕМА: НАДО ССУМИРОВАТЬ ПОЛЕ НАЧИСЛЕНИЯ. А ЗА ТЕКУЩИЙ ГОД НАДО ПРИБАВИТЬ ТОЛЬКО 50% ОТ СУММЫ.
Помогите! Очень надо...
Подойдет любой вариант: Макрос, VB, а мож и стандартным способом можно...

  Ответить  
 
 автор: ГлазастыйМышь   (06.08.2007 в 20:08)   личное сообщение
 
 

как и где и что суммировать ?
и что должно быть в отчете? одна строка

Иванов Иван Иванович - 15 214р.?

  Ответить  
 
 автор: Lvm   (08.08.2007 в 05:36)   личное сообщение
 
 

Такой вот запросик:

SELECT ФИО, ( SUM(Начисления)+
(IIF( (SELECT SUM(Начисления)*0.5 FROM Таблица2 WHERE (YEAR([Дата]) = YEAR(DATE())) AND (ФИО = @FIO) ) is null, 0,
(SELECT SUM(Начисления)*0.5 FROM Таблица2 WHERE (YEAR([Дата]) = YEAR(DATE())) AND (ФИО = @FIO) ) ) )
) AS Expr1
FROM Таблица2
WHERE (YEAR([Дата]) < YEAR(DATE()))
GROUP BY ФИО
HAVING (ФИО = @FIO);

Или вариант для adp:

ALTER PROCEDURE dbo.СохраненнаяПроцедура6
(@FIO nvarchar (50))
AS
SELECT ФИО, ( SUM(Начисления) +
(case
when (SELECT SUM(Начисления)*0.5 FROM dbo.Таблица2 WHERE (YEAR(Дата) = YEAR(GETDATE())) AND (ФИО = @FIO) ) is null then 0
else (SELECT SUM(Начисления)*0.5 FROM dbo.Таблица2 WHERE (YEAR(Дата) = YEAR(GETDATE())) AND (ФИО = @FIO) )
end)
) AS Expr1
FROM dbo.Таблица2
WHERE (YEAR(Дата) < YEAR(GETDATE()))
GROUP BY ФИО
HAVING (ФИО = @FIO)

  Ответить  
 
 автор: jaw   (08.08.2007 в 14:05)   личное сообщение
 
 

Мне кажется этот запросик выведет немного не тот результат, ну да бог с ним, я сам подправлю если что. Скажите только куда это вводить)

  Ответить  
 
 автор: jaw   (08.08.2007 в 14:12)   личное сообщение
 
 

Мне кажется этот запросик выведет немного не тот результат, ну да бог с ним, я сам подправлю если что. Скажите только куда это вводить)

  Ответить  
 
 автор: jaw   (09.08.2007 в 13:10)   личное сообщение
 
 

Все разобрался. Всем огромное спс. Считает она правильно только вот ругается на @ почемута. А в [ ] в самый раз получается. Тема закрыта.

  Ответить  
 
 автор: jaw   (08.08.2007 в 13:39)   личное сообщение
 
 

надо чтоб так:
ID ФИО Дата Начисления
1 Иванов 14.01.2005 100
2 Иванов 12.01.2006 100
3 Иванов 12.11.2007 100
6 Петров 11.11.2006 2
7 Петров 12.12.2007 2

В отчет вывело Иванов - 250р.

  Ответить  
 
 автор: osmor   (08.08.2007 в 15:32)   личное сообщение
 
 


SELECT [ФИО], Sum(IIf(Year([Дата])=Year(Date()),[Начисления]/2,[Начисления])) AS [ВСЕГО НАЧИСЛЕНО]
From [Таблица]
WHERE [ФИО] = [Укажите Фамилию]
GROUP BY [ФИО]

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList