| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS SQL Server > уравнение !! |
| Автор: uranpro 22.5.2008, 17:41 |
| у меня есть вьюшка View: ID int, Price int, CurValue int нужно найти sum(price) и отнять от него все значения CurValue, которые меньше нуля т.е. примерно так : select sum(price) - (select curvalue from .. where curvalue < 0) что-то типа этого, подскажите, что делать^ |
| Автор: Magnifico 22.5.2008, 20:30 | ||
| имеется ввиду отнять от сгруппированной суммы по конкретному id сумму отрицательных значений CurValue по модулю этого же id
|
| Автор: uranpro 23.5.2008, 10:00 |
| спасибо, сейчас проверю) |
| Автор: Akina 23.5.2008, 10:23 |
| a abs зачем? минус на минус... |
| Автор: uranpro 23.5.2008, 10:33 | ||||
вот что мне нужно^^, все работает так (- abs) идет же... а если так сделать
будет работать?))) сча посмотрим |
| Автор: Magnifico 23.5.2008, 10:39 |
| ты конкретно говори что теб надо сделать: отнять от суммы( прайс ) значения которые меньше нуля (то есть отрицательные) .Отрицательные По Модулю или Нет? Если нет то это перация называется сложения положительного с отрицательным : 5 - 8 ,а отнять это 5 - (-8) и вообще пример приводи если на словах не получается объяснить |
| Автор: uranpro 23.5.2008, 11:21 |
| да мне нужно найти сумму продаж по Price и учесть возвраты(они лежат в CurValue) поле возврата считается правильным, если оно <0 пример столбца CurValue: 10230 15200 -300 230 56210 2350 -1300 ... у меня есть еще один вопрос, странный глюк в MS SQL Server: >= '20.05.2008' AND <= '20.05.2008' эта выборка даст 0 строк, а вот эта выборка: >= '20.05.2008' AND < '21.05.2008' даст правильное число строк, на число 20.05.2008 ! и еще не работает запрос, когда ставишь = 20.05.2008 в чем проблема ? и как избавится от нее программно зы: я бы прибавлял к последней дате (+1), но если там будет 30-ое или 31-ое число, то ((( выборка по полю Date (DateTime) |
| Автор: Magnifico 23.5.2008, 11:38 |
| '20.05.2008' при конвертации в дату это будет 20.05.2008 :00:00:000 12 часов ночи -начало суток '21.05.2008' --> 21.05.2008 :00:00:000 начало других суток >= '20.05.2008' AND < '21.05.2008' получаем диапазон сутки >= '20.05.2008' AND <= '20.05.2008' а тут диапазон ноль и дату при передаче в sql server надо в формате строки 'yyyymmdd' (что бы избежать многих проблем) http://www.sql.ru/faq/faq_topic.aspx?fid=109 |
| Автор: uranpro 23.5.2008, 11:48 |
| да, я уже исправил с DD.MM.YYYY на YYYY/MM/DD спасибо за информацию, пойду проверять |