Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 можно посчитать внутри sql не выгружая в excel  [new]
кириллk
Member

Откуда:
Сообщений: 1062
Добрый день!

есть
select cost1 OPENROWSET('Microsoft.ACE.OLE)t1 where name LIKE '%a%'
select cost2 OPENROWSET('Microsoft.ACE.OLE)t1
найти
select cost2/cost1 from t1

можно посчитать внутри sql не выгружая в excel
22 фев 12, 15:12    [12137649]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
Glory
Member

Откуда:
Сообщений: 104751
CASE
22 фев 12, 15:15    [12137666]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
кириллk
Member

Откуда:
Сообщений: 1062
Glory,

Спасибо! Нашел пример тут

https://www.sql.ru/docs/mssql/tsql_ref/
22 фев 12, 15:49    [12137964]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
кириллk
Member

Откуда:
Сообщений: 1062
кириллk,

Воспользоваться смог :)

SELECT top 5 sz_name,
CASE
WHEN sz_name is no null THEN 'в наличии'
ELSE sz_name END sz_name1

FROM t1

Но решить свою задачу не смог :(
22 фев 12, 16:46    [12138486]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
Glory
Member

Откуда:
Сообщений: 104751
кириллk
Но решить свою задачу не смог

И сообщение об ошибке прочитали ?
22 фев 12, 18:46    [12139218]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
кириллk
Member

Откуда:
Сообщений: 1062
Glory,

ошибки нет

Просто у меня не получилось засунуть два "from"

только один

SELECT top 5 SZ_name,
CASE
WHEN sz_name is not null THEN 'в наличии'
ELSE sz_name END sz_name1

FROM OpenRowSet('Microsoft.Jet.OLEDB.4.0','Text;Database=C:\;',
'Select * from t1.csv ')

куда второй "from"?
24 фев 12, 10:34    [12145306]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
кириллk
Member

Откуда:
Сообщений: 1062
кириллk,


в таком виде запрос тоже через case делать?

01.01.2012 10000 01.05.2012 10000
02.01.2012 10000 02.05.2012 10000
24 фев 12, 10:58    [12145463]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
кириллk
Member

Откуда:
Сообщений: 1062
кириллk,


SELECT top 5 январь=
CASE
WHEN CONVERT(char(10), t1.date, 20)<'25.01.2012' THEN CONVERT(char(10), t1.date, 20)<'25.01.2012'
ELSE 'Not'
END,
'февраль' = CONVERT(char(10), t1.date, 20)>'25.01.2012'
from t1


что то фигня какая то
24 фев 12, 11:55    [12145815]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
кириллk
Member

Откуда:
Сообщений: 1062
кириллk,

Msg 8134, Level 16, State 1, Line 1
Обнаружена ошибка: деление на ноль.

твоюж
24 фев 12, 17:58    [12149133]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
кириллk,

что происходит?
у вас сообщения в той теме как-нибудь связаны между собой или это отдельные задачи?
24 фев 12, 20:53    [12150175]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
SomewhereSomehow,

*в этой теме
24 фев 12, 20:54    [12150182]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
кириллk
Member

Откуда:
Сообщений: 1062
SomewhereSomehow,

Доброе утро! Это одна задача, которую я пытаюсь решить с разных сторон :)
27 фев 12, 10:11    [12155081]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
Glory
Member

Откуда:
Сообщений: 104751
кириллk
Это одна задача,

cost2/cost1 и

январь=
CASE
WHEN CONVERT(char(10), t1.date, 20)<'25.01.2012' THEN CONVERT(char(10), t1.date, 20)<'25.01.2012'
ELSE 'Not'
END,
'февраль' = CONVERT(char(10), t1.date, 20)>'25.01.2012'

это одна задача ?
27 фев 12, 10:18    [12155133]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
кириллk
Member

Откуда:
Сообщений: 1062
Glory,

Да.

У меня есть таблица:

дата количество цена

Обычно я выгружал данные в эксель, и через pivot крутил данные.

Сейчас я хочу все вычисления делать на стороне sql
но постоянно сталкиваюсь с разными трудностями
27 фев 12, 13:03    [12156326]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
Glory
Member

Откуда:
Сообщений: 104751
кириллk
Сейчас я хочу все вычисления делать на стороне sql
но постоянно сталкиваюсь с разными трудностями

Заведите блог и пишите туда онлайн репортажи о преодолении трудностей
А здесь просьба задавать внятные вопросы
27 фев 12, 13:05    [12156350]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
кириллk
Member

Откуда:
Сообщений: 1062
Glory,

Хорошо!

Как через case выводить данные в таком виде?

01.01.2012 10000 01.05.2012 10000
02.01.2012 10000 02.05.2012 10000
27 фев 12, 13:08    [12156374]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
Glory
Member

Откуда:
Сообщений: 104751
кириллk
Как через case выводить данные в таком виде?

Выводить откуда ? Из воздуха ?
Или самому придумать структуру начальных данных ?
27 фев 12, 13:09    [12156395]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
кириллk
Member

Откуда:
Сообщений: 1062
Glory,

Я приложил табличку

К сообщению приложен файл. Размер - 7Kb
27 фев 12, 13:14    [12156436]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
кириллk
Member

Откуда:
Сообщений: 1062
кириллk,

SELECT fdfsd=
CASE
WHEN p.five is not null THEN p.cena * V."top"
ELSE 'Not'
end

тут я перемножил цену на количество

SELECT sum (fdfsd)=
CASE
WHEN p.five is not null THEN p.cena * V."top"
ELSE 'Not'
end

nene вывел итоговую сумму ( тока sql на синтаксис ругается)
27 фев 12, 13:15    [12156452]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
Glory
Member

Откуда:
Сообщений: 104751
кириллk
Glory,

Я приложил табличку

И как из одной записи получится 2 ?
Вы открывали тему Рекомендации по оформлению сообщений ?

кириллk
тут я перемножил цену на количество

SELECT sum (fdfsd)=
CASE
WHEN p.five is not null THEN p.cena * V."top"
ELSE 'Not'
end
nene вывел итоговую сумму ( тока sql на синтаксис ругается)

Синтаксис не нужно придумывать самому
Вы как себе представляете суммирование чисел и строк ?
500+'Вася' сколько будет ?
27 фев 12, 13:19    [12156484]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
кириллk
Member

Откуда:
Сообщений: 1062
Glory,

Запрос :

SELECT total=
CASE
WHEN p.five is not null THEN p.cena * V."top"
ELSE 'Not'
end

Выводит мне столбец "total"

total
43676
12495
110551

А теперь я хочу найти сумму

SELECT sum (total)=
CASE
WHEN p.five is not null THEN p.cena * V."top"
ELSE 'Not'
end

я пробовал вот так


SELECT total=
CASE
WHEN p.five is not null THEN p.cena * V."top"
ELSE 'Not'
end,

'total2'= sum(total)
27 фев 12, 13:23    [12156519]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
Glory
Member

Откуда:
Сообщений: 104751
Ну вот и объясните, какой результат будет при суммировании

total
43676
12495
'Not'
110551
'Not'
27 фев 12, 13:24    [12156531]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
кириллk
Member

Откуда:
Сообщений: 1062
Glory,
я првоерил у меня в столбце p.five нет NULL
27 фев 12, 13:27    [12156559]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
Glory
Member

Откуда:
Сообщений: 104751
кириллk
я првоерил у меня в столбце p.five нет NULL

Для чего же тогда CASE ?
27 фев 12, 13:29    [12156574]     Ответить | Цитировать Сообщить модератору
 Re: можно посчитать внутри sql не выгружая в excel  [new]
кириллk
Member

Откуда:
Сообщений: 1062
Glory,

Если в case условие не ставить, оно не сработает :)
27 фев 12, 13:29    [12156588]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить