Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Необходимо значение ноль / 25 сообщений из 29, страница 1 из 2
08.10.2002, 08:23:01
    #32056184
Необходимо значение ноль
Здравствуйте. Если сможете помогите пожалуйста. Да наверно сможете, потому что тут такие запросы, а у меня по сравнению с этими так ничего. Ну и всё же ...

Есть запрос, каторый выводит вот такие данные:
Договор Сумма Месяц Год Заказчик
96-10-___ 1500 1 1975 -
96-10-___ 1500 3 1998 -
96-10-___ 1500 5 1998 -
96-10-___ 1500 6 1999 -
и так далее.
Я выполняю суммирование с группировкой общую, а запрос выводит мне 4 одинаковых значения "Сумма" в место одного. Мне нужно, чтобы запрос выводил одно значение , а остальные были нулями.
Заранее Вам благодарен. Помогите пожалуйста.
...
Рейтинг: 0 / 0
08.10.2002, 09:24:34
    #32056195
klmnop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
Валентин, добрый день! Очень непонятно вы выражаете свои мысли, может просто скажете. к примеру, что нужно сосчитать сумму договоров за такой-то период, или, к примеру, какова общая сумма договора 96-10....... А то как-то неудобно получается. вопрос похоже пустяковый, а помочь никто не может.
...
Рейтинг: 0 / 0
08.10.2002, 09:36:24
    #32056200
Bzzzzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
Ключевое слово - "группировка". Группируется по определенному признаку. Если он во все записях уникален - суммы(или каунта, или другой агрегирующей) не будет! Оставить в запросе только ключевые поля: дата - если требуется сумма по датам, клиент или селс - если требуются консолидации по ним... Удачи!
...
Рейтинг: 0 / 0
08.10.2002, 09:47:04
    #32056202
Bzzzzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
Да, забыл... А нулевые - константами!
...
Рейтинг: 0 / 0
08.10.2002, 09:50:23
    #32056203
:)
:)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
select sum([Сумма]), 0, 0, 0 from [Таблица] group by [Договор]
...
Рейтинг: 0 / 0
08.10.2002, 10:02:54
    #32056206
Валентин
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
Прошу прошенья за непонятный вопрос!!!

Весь этот запрос сводиться к выполнению отчёта в Access.

Начальный запрос.
SELECT TOP 100 PERCENT dbo.Договоры.НомерДоговора, SUM(ISNULL(dbo.Оплата.Сумма + dbo.Оплата.НДС, 0)) AS Оплата_ПК, MONTH(dbo.Оплата.ДатаОплаты) AS Месяц, YEAR(MONTH(dbo.Оплата.ДатаОплаты)) AS Год
FROM dbo.Договоры LEFT OUTER JOIN dbo.Оплата ON dbo.Договоры.НомерДоговора = dbo.Оплата.НомерДоговора
WHERE (dbo.Договоры.СПО = 0)
GROUP BY dbo.Договоры.НомерДоговора, MONTH(dbo.Оплата.ДатаОплаты), YEAR(dbo.Оплата.ДатаОплаты)
ORDER BY dbo.Договоры.НомерДоговора

Получается (выбор из таблиц):
НомерДоговора Оплата_пк Месяц Год
004/2001-АРКО-17 602637 12 1900
005/2001-АРКО-16 1099990.8 7 1900
005/2001-АРКО-16 -660000 9 1900
и так далее .....
У одного и того же договора получаются значения положительные и отрицательные.
А мне надо чтобы отрицательных значений НЕ БЫЛО, чтобы они складывались с положительными, а вместо них стоял ноль.

Если мой вопрос опять будет непонятен, то я сразу прошу прощенья. Я работаю в SQL недавно, поэтому корректно сформулировать пока не могу.

Спасибо и ещё раз извините!!!
...
Рейтинг: 0 / 0
08.10.2002, 10:18:00
    #32056211
Bzzzzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
См. выше. Убрать нафиг из запроса даты и прочее... Они делают записи уникальными, группировки по ним не произойдет, следовательно и суммы не будет! Интересует сумма движений средств по договорам - так и оставить ТОЛЬКО номер договора(или его ИД) и деньги!
...
Рейтинг: 0 / 0
08.10.2002, 10:18:12
    #32056212
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
У одного и того же договора получаются значения положительные и отрицательные.
А мне надо чтобы отрицательных значений НЕ БЫЛО, чтобы они складывались с положительными, а вместо них стоял ноль.

С чем они должны складываться? Почему?
Я понимаю что Вы не один день думаете над этой проблемой и думаете что это всё и так понятно. Но остальным это не так очевидно. Мне кажется если Вы сумеете четко сформулировать что и как должно складываться, то сами сможете разобраться. А если не сможете - то всё равно врядли кто поможет.
...
Рейтинг: 0 / 0
08.10.2002, 10:18:17
    #32056213
klmnop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
Так куда деваться, если в сентябре 1900 г. по договору 005/2001-АРКО-16 был возврат денег? Что шефу неприятно на это лицезреть?
...
Рейтинг: 0 / 0
08.10.2002, 10:27:09
    #32056215
Валентин
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
Факт в том, что после этого запроса формируется отчёт (называется - АКТ СВЕРКИ ВЗАИМНЫХ РАСЧЁТОВ) в котором не должно быть отрицательных чисел ВООБЩЕ.

А месяц и год должны выводиться в отчёт обязательно, без месяца и года всё получается изумительно.

В общем отчёт выглядет так.

Номер Договора
Заказчик
Акт НомерАкта ДатаАкта
Месяц Год Оплата_пк
и где месяц, год, оплата_пк - должна быть без отрицательных значений. Если вместо неё будут нули, то я смогу их потом убрать и будет всё O'key.

Спасибо!!!
...
Рейтинг: 0 / 0
08.10.2002, 10:40:28
    #32056219
klmnop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
Случалось мне делать акты сверки. Только он у меня был из двух колонок, слева поступления от контрагента, справа отгрузки контрагенту. Так ваша отрицательная сумма должна быть положительной и находиться в правом наборе. А в итоге должен вычисляться баланс взаиморасчетов: Сумма поступлений - Сумма отгрузок. Представте ситуацию, когда очень уважаемый шефами контрагент чаще приобретает, чем расплачивается... В итоге как не крути, не складывай с другими строками, сумма всеравно будет отрицательной, что тогда? Искажать отчетность?
...
Рейтинг: 0 / 0
08.10.2002, 10:44:49
    #32056220
dao
dao
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
На сколько я помню сверка происходит так - берутся договора с одной стороны и смотриться сколько закрыто а сколько нет.
Я делал так сумирую по "нашим " договорам - скидываю во временную таблицу - подцепляю реквезиты договоров
...
Рейтинг: 0 / 0
08.10.2002, 10:44:50
    #32056221
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
2 Валентин
Приведите ваш запрос пожалуйста.
...
Рейтинг: 0 / 0
08.10.2002, 10:51:19
    #32056227
Bzzzzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
Тогда это делается ДВУМЯ запросами. И их результаты объединяются по договору. Типа
select Договор, Акт, НомерАкта, ДатаАкта,
from .... s1 inner join (select Договор, sum(Сумма) from .... group by Договор) s2 on s1.Договор = s2.Договор
...
Рейтинг: 0 / 0
08.10.2002, 10:57:31
    #32056228
Валентин
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
Я сейчас приведу полностью весь запрос:
----- Делаем выборку по оплате

SELECT TOP 100 PERCENT dbo.Договоры.НомерДоговора, SUM(ISNULL(dbo.Оплата.Сумма + dbo.Оплата.НДС, 0)) AS Оплата_ПК, MONTH(dbo.Оплата.ДатаОплаты) AS Месяц, YEAR(dbo.Оплата.ДатаОплаты) AS Год
FROM dbo.Договоры LEFT OUTER JOIN dbo.Оплата ON dbo.Договоры.НомерДоговора = dbo.Оплата.НомерДоговора
WHERE (dbo.Договоры.СПО = 0)
GROUP BY dbo.Договоры.НомерДоговора, MONTH(dbo.Оплата.ДатаОплаты), YEAR(dbo.Оплата.ДатаОплаты)
ORDER BY dbo.Договоры.НомерДоговора


----Потом делаем выборку по заказчикам

SELECT dbo.Договоры.НомерДоговора, dbo.Заказчики.Заказчик, dbo.[VW Подп_акты].Акт, dbo.[VW Подп_акты].ДатаАкта, dbo.[VW Подп_акты].Подп_акты, MONTH(dbo.[VW Оплата_ПК].ДатаОплаты) AS Месяц, SUM(dbo.[VW Оплата_ПК].Оплата_ПК) AS [Оплата_ПК],
YEAR(dbo.[VW Оплата_ПК].ДатаОплаты) AS Год
FROM dbo.Договоры LEFT OUTER JOIN dbo.Заказчики ON dbo.Договоры.КодЗаказчика = dbo.Заказчики.КодЗаказчика LEFT OUTER JOIN dbo.[VW Подп_акты] ON dbo.Договоры.НомерДоговора = dbo.[VW Подп_акты].НомерДоговора LEFT OUTER JOIN
dbo.[VW Оплата_ПК] ON dbo.Договоры.НомерДоговора = dbo.[VW Оплата_ПК].НомерДоговора
WHERE (dbo.Договоры.СПО = 0)
GROUP BY dbo.Договоры.НомерДоговора, dbo.[VW Подп_акты].Акт, dbo.[VW Подп_акты].ДатаАкта, dbo.[VW Подп_акты].Подп_акты, dbo.[VW Оплата_ПК].Оплата_ПК, YEAR(dbo.[VW Оплата_ПК].ДатаОплаты), MONTH(dbo.[VW Оплата_ПК].ДатаОплаты), dbo.Заказчики.Заказчик
HAVING (dbo.[VW Подп_акты].Акт <> '0') OR
(dbo.[VW Оплата_ПК].Оплата_ПК <> 0)

А потом на Visual Basic пишем процедуру Creat View и выводим это всё в отчёт.

Спасибо.
...
Рейтинг: 0 / 0
08.10.2002, 14:32:13
    #32056342
Оля
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
Добрый день!

Валентин, если это некоторый документ, то форму этого документа сходите и возьмите в бухгалтерии, а не придумывайте сами. Это во-первых.

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

Всего лучшего!
...
Рейтинг: 0 / 0
09.10.2002, 08:49:52
    #32056593
Валентин
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
Здравствуйте Оля!

Не так то всё просто.
В Access я могу заменить отрицательные числа нулями, это без проблем, но мне надо чтобы эти числа которые превращаются в ноль суммировались с положительными.

Я так думаю что мне придётся делать где нибудь массив, или в SQL или в Access, пока не знаю. Но а эта проблема меня уже ДОСТАЛА. Почему начальники бывают такими НЕПОНЯТЛЕВЫМИ.

Спасибо.
Хоть выговорился.
...
Рейтинг: 0 / 0
09.10.2002, 09:04:05
    #32056598
Bzzzzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
Забавно... Делал акты сверки, делал статистику, но такое... Не стоит вязать в одном отчете вещи, противоположные по своей сути!
...
Рейтинг: 0 / 0
09.10.2002, 09:44:51
    #32056611
MichaelGK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
Валентин, здравствуйте. Паритесь? Есть совет: скопируйте предложение klmnop по поводу дебетовой и кредитовой частей в акте сверки и сходите с ним к заказчику отчета (наверное гл.Бух.). Не ломайте голову по поводу сокрытия того, что имеет место быть на самам деле. В конце концов если бухам неприятно видеть минусовые обороты сделайте выгрузку акта в Excel... пусть они ручками подрихтуют как им надо.
...
Рейтинг: 0 / 0
09.10.2002, 14:41:31
    #32056757
Оля
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
Ну тогда такая хитрость

Делаете в отчете 2 элемента, один из них не выводится при печати (или выводится белым цветом), но отражает реальные числа и по нему идет суммирование
Второй элемент отражает некую ф-цию от реального числа (в частности, если <0 то =0) -Его на печать и выводите.

Искажать данные - задача, не достойная SQL
Пусть этим занимается генератор отчетов ACCESS

:-)))))

Удачи!
...
Рейтинг: 0 / 0
10.10.2002, 08:22:34
    #32056903
Валентин
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
Спасибо конечно Вам большое за Ваши ответы, попробую что нибудь на VB в Access.

Спасибо!
...
Рейтинг: 0 / 0
10.10.2002, 09:26:31
    #32056911
SiDen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
На сколько я понял, без группировки по датам все превосходно работает, в связи с этим попробуйте поиграться last например или first... возможно это решит Вашу проблему (в аксесе это прокатывало у меня)
...
Рейтинг: 0 / 0
10.10.2002, 11:31:38
    #32056956
Валентин
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
Вы конечно меня извините, но как это: last или first.
Объясните пожалуста.
...
Рейтинг: 0 / 0
10.10.2002, 12:33:29
    #32056996
SiDen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
005/2001-АРКО-16 1099990.8 7 1900
005/2001-АРКО-16 -660000 9 1900
если не делать группировку по месяцу, то получим
005/2001-АРКО-16 (1099990.8-660000) 1900
т.е. то, что хотим получить, но с месяцом.
вместо группировки по месяцу выводим last(месяц), то
получаем
005/2001-АРКО-16 (1099990.8-660000) 9 1900
ну или first... тут уже по желанию.
...
Рейтинг: 0 / 0
10.10.2002, 12:44:26
    #32057007
SiDen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Необходимо значение ноль
Есть еще один вариант - вместо месяца - подставлять функцию, у которой параметры - дата, сумма, тогда если дата положительная - возвращать месяц из даты, а если отрицательное - то подставлять месяц, в котором сумма положительная.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Необходимо значение ноль / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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