Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как сложить строки  [new]
katish444
Member

Откуда:
Сообщений: 261
Ребят, подскажите пожалуйста команду, которая бы у меня суммировала по проекту.
Мой запрос выдает таблицу как на картинке, а надо чтобы он еще общую сумму выдавал (например еще и 187+155,5 и 129+36,5 и т.д.)

select  case row_number() over(partition by dd.projectcode order by dd.holeID) when 1 then dd.PROJECTCODE end as x_project,

sum(cast((case when name = 'totaldrilldepth' then value end) as float))s from drillingdetail dd where dd.holeid in (select holeid from  DRILLINGDETAIL  where cast([DRILLINGDATE] as date)                between '13-feb-2017' and '20-feb-2017'
 ) and cast([DRILLINGDATE] as date)                between '13-feb-2017' and '20-feb-2017'

 group by PROJECTCODE,HOLEID


Кажется у меня кривые руки...

К сообщению приложен файл. Размер - 12Kb
20 фев 18, 13:43    [21204857]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
katish444
Member

Откуда:
Сообщений: 261
katish444,
Проблема в том, что это значения разных скважин одного проекта и их надо сложить. Но чтобы знать что складывать надо узнать какие скважины бурили Holeid, поэтому избавится не могу
20 фев 18, 13:45    [21204862]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5112
а почему вы выводите dd.projectcode только для первой дырки?
выводите для всех и суммируйте потом по нему
20 фев 18, 13:56    [21204891]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
katish444
Member

Откуда:
Сообщений: 261
Дедушка
а почему вы выводите dd.projectcode только для первой дырки?
выводите для всех и суммируйте потом по нему

Чтобы не дублировалось. Значения-то выводятся для всех
Попробовала на всякий случай - все равно не складывает
20 фев 18, 14:28    [21205083]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5112
katish444,

вам вот так надо?

x_projectsss
KE187342.5
KE155.5342.5
MA129165.5
MA36.5165.5
20 фев 18, 14:36    [21205117]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
katish444,

вы хе вроде всё под SSRS пилите, он умеет суммировать группировать и тд, зачем это отчётное программирование на TSQL
20 фев 18, 14:36    [21205119]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
Kopelly
Member

Откуда: Красноярск
Сообщений: 289
katish444,
Может так:
group by PROJECTCODE,HOLEID With Rollup
21 фев 18, 04:28    [21206646]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
Kopelly
Member

Откуда: Красноярск
Сообщений: 289
katish444,
Ну и для красоты:
case When row_number() over(partition by dd.projectcode order by dd.holeID) = 1 then dd.PROJECTCODE 
                When Hole_ID is null Then 'Итого ' + isnull(' по'+cast(dd.PROJECTCODE  as Varchar(3)),'') + ':' end as x_project,
21 фев 18, 04:35    [21206647]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
Kopelly
Member

Откуда: Красноярск
Сообщений: 289
katish444,

Туплю - dd.PROJECTCODE уже строка:
case When row_number() over(partition by dd.projectcode order by dd.holeID) = 1 then dd.PROJECTCODE 
                When Hole_ID is null Then 'Итого ' + isnull(' по'+dd.PROJECTCODE,'') + ':' end as x_project,
21 фев 18, 04:37    [21206648]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
Добрый Э - Эх
Guest
katish444,

вроде не первый день на форуме, а понятно спрашивать так и не научилась.... Почему для ответа на твой вопрос нам приходится задавать тебе с десяток уточняющих вопросов? Может уже настало время прочитать пункт 6 и все вопросы, связанные с помощью в составлении запросов, задавать в соответствии с требованиями?
21 фев 18, 04:42    [21206649]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
katish444
Member

Откуда:
Сообщений: 261
Добрый Э - Эх
katish444,

вроде не первый день на форуме, а понятно спрашивать так и не научилась.... Почему для ответа на твой вопрос нам приходится задавать тебе с десяток уточняющих вопросов? Может уже настало время прочитать пункт 6 и все вопросы, связанные с помощью в составлении запросов, задавать в соответствии с требованиями?

так в этот раз же все вроде бы понятно, разве нет?
21 фев 18, 06:23    [21206663]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
katish444
Member

Откуда:
Сообщений: 261
Kopelly
katish444,

Туплю - dd.PROJECTCODE уже строка:
case When row_number() over(partition by dd.projectcode order by dd.holeID) = 1 then dd.PROJECTCODE 
                When Hole_ID is null Then 'Итого ' + isnull(' по'+dd.PROJECTCODE,'') + ':' end as x_project,

благодарю. Сейчас попробую
21 фев 18, 06:23    [21206664]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
katish444
Member

Откуда:
Сообщений: 261
Дедушка
katish444,

вам вот так надо?

x_projecttstss
KEt187t342.5
KEt155.5t342.5
MAt129t165.5
MAt36.5t165.5

Не, так у меня и получается. А мне надо чтобы KE не дублировалось, а складывалось
21 фев 18, 06:24    [21206665]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
katish444
Member

Откуда:
Сообщений: 261
Kopelly
katish444,

Туплю - dd.PROJECTCODE уже строка:
case When row_number() over(partition by dd.projectcode order by dd.holeID) = 1 then dd.PROJECTCODE 
                When Hole_ID is null Then 'Итого ' + isnull(' по'+dd.PROJECTCODE,'') + ':' end as x_project,

Мне надо чтобы он суммировал все метры по проекту, а он разделяет их на скважины

К сообщению приложен файл. Размер - 16Kb
21 фев 18, 06:26    [21206667]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
katish444
Member

Откуда:
Сообщений: 261
Дедушка
katish444,

вам вот так надо?

x_projecttstss
KEt187t342.5
KEt155.5t342.5
MAt129t165.5
MAt36.5t165.5


хотя погодите, если спрятать столбец S, то столбец SS - это то что надо

Подскажите, пожалуйста, каким способом вы этого достигли
21 фев 18, 06:28    [21206669]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
katish444
Member

Откуда:
Сообщений: 261
TaPaK
katish444,

вы хе вроде всё под SSRS пилите, он умеет суммировать группировать и тд, зачем это отчётное программирование на TSQL

вы столько непонятных слов сказали....
21 фев 18, 06:30    [21206670]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
Kopelly
Member

Откуда: Красноярск
Сообщений: 289
katish444,

Нарисуй (хоть в Excel) что тебе нужно на выходе.
21 фев 18, 06:30    [21206671]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
katish444
Member

Откуда:
Сообщений: 261
Kopelly
katish444,

Нарисуй (хоть в Excel) что тебе нужно на выходе.


К сообщению приложен файл. Размер - 11Kb
21 фев 18, 06:44    [21206678]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
katish444
Member

Откуда:
Сообщений: 261
Kopelly,
Чтобы он складывал глубины по одному проек5ту, т.е. пока проект КЕ, он суммирует, потом суммирует проект МА и т.д.
21 фев 18, 06:45    [21206679]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
Kopelly
Member

Откуда: Красноярск
Сообщений: 289
katish444,

Исключи HOLE_ID из Group by!!!
21 фев 18, 06:46    [21206680]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
Kopelly
Member

Откуда: Красноярск
Сообщений: 289
katish444,

select  dd.PROJECTCODE as x_project,
sum(cast((case when name = 'totaldrilldepth' then value end) as float)) as s 
from drillingdetail dd 
where dd.holeid in (select holeid from  DRILLINGDETAIL  
                             where cast([DRILLINGDATE] as date) between '13-feb-2017' and '20-feb-2017' ) 
   and cast([DRILLINGDATE] as date) between '13-feb-2017' and '20-feb-2017'
 group by PROJECTCODE
21 фев 18, 06:52    [21206689]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
Kopelly
Member

Откуда: Красноярск
Сообщений: 289
Даже проще:

select  dd.PROJECTCODE as x_project,
sum(cast((case when name = 'totaldrilldepth' then value end) as float)) as s 
from drillingdetail dd 
where cast([DRILLINGDATE] as date) between '13-feb-2017' and '20-feb-2017'
 group by PROJECTCODE
21 фев 18, 06:54    [21206690]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
Добрый Э - Эх
Guest
katish444
так в этот раз же все вроде бы понятно, разве нет?
если бы было всё понятно - то первый же ответ в этом топике содержал бы правильное и нужное тебе решение.... Но судя по тому, что топик "растянулся" - непонятно не только лишь мне...
21 фев 18, 06:59    [21206694]     Ответить | Цитировать Сообщить модератору
 Re: Как сложить строки  [new]
katish444
Member

Откуда:
Сообщений: 261
Kopelly
Даже проще:

select  dd.PROJECTCODE as x_project,
sum(cast((case when name = 'totaldrilldepth' then value end) as float)) as s 
from drillingdetail dd 
where cast([DRILLINGDATE] as date) between '13-feb-2017' and '20-feb-2017'
 group by PROJECTCODE


То, что надо!
Благодарю
21 фев 18, 07:05    [21206698]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить