|
|
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Если сможете помогите пожалуйста. Да наверно сможете, потому что тут такие запросы, а у меня по сравнению с этими так ничего. Ну и всё же ... Есть запрос, каторый выводит вот такие данные: Договор Сумма Месяц Год Заказчик 96-10-___ 1500 1 1975 - 96-10-___ 1500 3 1998 - 96-10-___ 1500 5 1998 - 96-10-___ 1500 6 1999 - и так далее. Я выполняю суммирование с группировкой общую, а запрос выводит мне 4 одинаковых значения "Сумма" в место одного. Мне нужно, чтобы запрос выводил одно значение , а остальные были нулями. Заранее Вам благодарен. Помогите пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 08:23:01 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
Валентин, добрый день! Очень непонятно вы выражаете свои мысли, может просто скажете. к примеру, что нужно сосчитать сумму договоров за такой-то период, или, к примеру, какова общая сумма договора 96-10....... А то как-то неудобно получается. вопрос похоже пустяковый, а помочь никто не может. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 09:24:34 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
Ключевое слово - "группировка". Группируется по определенному признаку. Если он во все записях уникален - суммы(или каунта, или другой агрегирующей) не будет! Оставить в запросе только ключевые поля: дата - если требуется сумма по датам, клиент или селс - если требуются консолидации по ним... Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 09:36:24 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
Да, забыл... А нулевые - константами! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 09:47:04 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
select sum([Сумма]), 0, 0, 0 from [Таблица] group by [Договор] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 09:50:23 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
Прошу прошенья за непонятный вопрос!!! Весь этот запрос сводиться к выполнению отчёта в 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 недавно, поэтому корректно сформулировать пока не могу. Спасибо и ещё раз извините!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 10:02:54 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
См. выше. Убрать нафиг из запроса даты и прочее... Они делают записи уникальными, группировки по ним не произойдет, следовательно и суммы не будет! Интересует сумма движений средств по договорам - так и оставить ТОЛЬКО номер договора(или его ИД) и деньги! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 10:18:00 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
У одного и того же договора получаются значения положительные и отрицательные. А мне надо чтобы отрицательных значений НЕ БЫЛО, чтобы они складывались с положительными, а вместо них стоял ноль. С чем они должны складываться? Почему? Я понимаю что Вы не один день думаете над этой проблемой и думаете что это всё и так понятно. Но остальным это не так очевидно. Мне кажется если Вы сумеете четко сформулировать что и как должно складываться, то сами сможете разобраться. А если не сможете - то всё равно врядли кто поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 10:18:12 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
Так куда деваться, если в сентябре 1900 г. по договору 005/2001-АРКО-16 был возврат денег? Что шефу неприятно на это лицезреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 10:18:17 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
Факт в том, что после этого запроса формируется отчёт (называется - АКТ СВЕРКИ ВЗАИМНЫХ РАСЧЁТОВ) в котором не должно быть отрицательных чисел ВООБЩЕ. А месяц и год должны выводиться в отчёт обязательно, без месяца и года всё получается изумительно. В общем отчёт выглядет так. Номер Договора Заказчик Акт НомерАкта ДатаАкта Месяц Год Оплата_пк и где месяц, год, оплата_пк - должна быть без отрицательных значений. Если вместо неё будут нули, то я смогу их потом убрать и будет всё O'key. Спасибо!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 10:27:09 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
Случалось мне делать акты сверки. Только он у меня был из двух колонок, слева поступления от контрагента, справа отгрузки контрагенту. Так ваша отрицательная сумма должна быть положительной и находиться в правом наборе. А в итоге должен вычисляться баланс взаиморасчетов: Сумма поступлений - Сумма отгрузок. Представте ситуацию, когда очень уважаемый шефами контрагент чаще приобретает, чем расплачивается... В итоге как не крути, не складывай с другими строками, сумма всеравно будет отрицательной, что тогда? Искажать отчетность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 10:40:28 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
На сколько я помню сверка происходит так - берутся договора с одной стороны и смотриться сколько закрыто а сколько нет. Я делал так сумирую по "нашим " договорам - скидываю во временную таблицу - подцепляю реквезиты договоров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 10:44:49 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
2 Валентин Приведите ваш запрос пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 10:44:50 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
Тогда это делается ДВУМЯ запросами. И их результаты объединяются по договору. Типа select Договор, Акт, НомерАкта, ДатаАкта, from .... s1 inner join (select Договор, sum(Сумма) from .... group by Договор) s2 on s1.Договор = s2.Договор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 10:51:19 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
Я сейчас приведу полностью весь запрос: ----- Делаем выборку по оплате 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 и выводим это всё в отчёт. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 10:57:31 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
Добрый день! Валентин, если это некоторый документ, то форму этого документа сходите и возьмите в бухгалтерии, а не придумывайте сами. Это во-первых. Во-вторых, насколько помню, генератор отчетов ACCESS имеет функции группировки с накоплением, событие OnFormat (как раз удобно заменять отр. числа нулями) и др. радости. Поэтому не обязательно гнать все через запрос, используйте возможности генератора отчетов Всего лучшего! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2002, 14:32:13 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
Здравствуйте Оля! Не так то всё просто. В Access я могу заменить отрицательные числа нулями, это без проблем, но мне надо чтобы эти числа которые превращаются в ноль суммировались с положительными. Я так думаю что мне придётся делать где нибудь массив, или в SQL или в Access, пока не знаю. Но а эта проблема меня уже ДОСТАЛА. Почему начальники бывают такими НЕПОНЯТЛЕВЫМИ. Спасибо. Хоть выговорился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2002, 08:49:52 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
Забавно... Делал акты сверки, делал статистику, но такое... Не стоит вязать в одном отчете вещи, противоположные по своей сути! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2002, 09:04:05 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
Валентин, здравствуйте. Паритесь? Есть совет: скопируйте предложение klmnop по поводу дебетовой и кредитовой частей в акте сверки и сходите с ним к заказчику отчета (наверное гл.Бух.). Не ломайте голову по поводу сокрытия того, что имеет место быть на самам деле. В конце концов если бухам неприятно видеть минусовые обороты сделайте выгрузку акта в Excel... пусть они ручками подрихтуют как им надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2002, 09:44:51 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
Ну тогда такая хитрость Делаете в отчете 2 элемента, один из них не выводится при печати (или выводится белым цветом), но отражает реальные числа и по нему идет суммирование Второй элемент отражает некую ф-цию от реального числа (в частности, если <0 то =0) -Его на печать и выводите. Искажать данные - задача, не достойная SQL Пусть этим занимается генератор отчетов ACCESS :-))))) Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2002, 14:41:31 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
Спасибо конечно Вам большое за Ваши ответы, попробую что нибудь на VB в Access. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2002, 08:22:34 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
На сколько я понял, без группировки по датам все превосходно работает, в связи с этим попробуйте поиграться last например или first... возможно это решит Вашу проблему (в аксесе это прокатывало у меня) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2002, 09:26:31 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
Вы конечно меня извините, но как это: last или first. Объясните пожалуста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2002, 11:31:38 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
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... тут уже по желанию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2002, 12:33:29 |
|
||
|
Необходимо значение ноль
|
|||
|---|---|---|---|
|
#18+
Есть еще один вариант - вместо месяца - подставлять функцию, у которой параметры - дата, сумма, тогда если дата положительная - возвращать месяц из даты, а если отрицательное - то подставлять месяц, в котором сумма положительная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2002, 12:44:26 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32056211&tid=1819703]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 306ms |

| 0 / 0 |
