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

Откуда:
Сообщений: 581
Есть такой запрос
select distinct date, counter from dbo.result_count  
 where date between dateadd(day,-1,@datepar_at) and dateadd(day,1,@datepar_at

вне зависимости от @datepar_at запрос возвращает 47 записей.

хочется получить выходную таблицу состоящую из 3-ех полей, где первые два получают от выше приведнного запроса, а третье от выполнения
select  distinct counter from dbo.result_count  
where date  between dateadd(day,-1,@datepar_to) and dateadd(day,1,@datepar_to)
30 июн 09, 10:18    [7357426]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
приведите, пожалуйста, пример тестовых данных и желаемого результата
30 июн 09, 10:20    [7357436]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос  [new]
Kirillich
Member

Откуда:
Сообщений: 581
Паганель
приведите, пожалуйста, пример тестовых данных и желаемого результата


первый запрос возвращает
2009-06-25 21:00:46.000	13295976282
2009-06-25 22:00:42.000 13295362032
2009-06-25 23:00:39.000 13296804960
2009-06-26 01:00:37.000 13253043724
2009-06-26 02:00:34.000 13293559190
2009-06-26 03:00:30.000 13297263442
2009-06-26 04:00:27.000 13292556080
2009-06-26 05:00:23.000 13296864319

желаемый результат

2009-06-25 21:00:46.000	13295976282	6892767114
30 июн 09, 10:22    [7357445]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
0) где пример тестовых данных?

1)
Kirillich
первый запрос возвращает
а второй что возвращает ?

2)
Kirillich
желаемый результат
2009-06-25 21:00:46.000	13295976282	6892767114
А почему только одна строка, куда делись остальные?
30 июн 09, 10:25    [7357454]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос  [new]
Kirillich
Member

Откуда:
Сообщений: 581
Паганель
0) где пример тестовых данных?

1)
Kirillich
первый запрос возвращает
а второй что возвращает ?

2)
Kirillich
желаемый результат
2009-06-25 21:00:46.000	13295976282	6892767114
А почему только одна строка, куда делись остальные?




в таблице два столбца, так что то что возвращает запрос это и есть данные таблицы

второй возвращает такой же набор данных (дата, значение)
но с другой датой

2009-06-20 18:00:35.000	13295904930
2009-06-20 19:00:32.000 13294588950
2009-06-20 20:00:28.000 13296038470
2009-06-20 21:00:25.000 13295391548
2009-06-20 22:00:21.000 13294580815
2009-06-20 23:00:18.000 13295851876
2009-06-21 01:00:15.000 13294476260
2009-06-21 02:00:12.000 13293239680
30 июн 09, 10:30    [7357486]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Паганель
2)
Kirillich
желаемый результат
2009-06-25 21:00:46.000	13295976282	6892767114
А почему только одна строка, куда делись остальные?
30 июн 09, 10:32    [7357496]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос  [new]
Kirillich
Member

Откуда:
Сообщений: 581
Паганель
Паганель
2)
Kirillich
желаемый результат
2009-06-25 21:00:46.000	13295976282	6892767114
А почему только одна строка, куда делись остальные?



хотелось бы видеть такой результат
2009-06-25 21:00:46.000 13295976282	6892767114
2009-06-25 22:00:42.000 13295362032 12981296571
2009-06-25 23:00:39.000 13296804960 13063830579
2009-06-26 01:00:37.000 13253043724 13191184039
2009-06-26 02:00:34.000 13293559190 13199165345
2009-06-26 03:00:30.000 13297263442 13214207840
2009-06-26 04:00:27.000 13292556080 13223942006
2009-06-26 05:00:23.000 13296864319 13233278002
30 июн 09, 10:38    [7357527]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
1) откуда взялось число 6892767114 ? В исходных данных его не было!
2)
Kirillich
хотелось бы видеть такой результат
2009-06-25 21:00:46.000 13295976282	6892767114
2009-06-25 22:00:42.000 13295362032	12981296571
2009-06-25 23:00:39.000 13296804960	13063830579
2009-06-26 01:00:37.000 13253043724	13191184039
2009-06-26 02:00:34.000 13293559190	13199165345
2009-06-26 03:00:30.000 13297263442	13214207840
2009-06-26 04:00:27.000 13292556080	13223942006
2009-06-26 05:00:23.000 13296864319	13233278002
А почему не так:
2009-06-25 21:00:46.000 13295976282	6892767114
2009-06-25 22:00:42.000 13295362032	13063830579
2009-06-25 23:00:39.000 13296804960	12981296571
2009-06-26 01:00:37.000 13253043724	13191184039
2009-06-26 02:00:34.000 13293559190	13199165345
2009-06-26 03:00:30.000 13297263442	13214207840
2009-06-26 04:00:27.000 13292556080	13223942006
2009-06-26 05:00:23.000 13296864319	13233278002
?
Другими словами, по каким принципам числа второго запроса размещаются напротив чисел первого запроса?
30 июн 09, 10:42    [7357558]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос  [new]
Kirillich
Member

Откуда:
Сообщений: 581
Паганель,

в таблицах расположены показания счетчиков по времени(каждые час)

а располагаться они должны так как записаны, т.е. последовательно.

результаты выполнения запросов должны быть в одной таблице "как есть"

количество результатов после выполнения запросов одинаковое
30 июн 09, 10:55    [7357632]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Kirillich
а располагаться они должны так как записаны, т.е. последовательно.
результаты выполнения запросов должны быть в одной таблице "как есть"
-- test data
declare @result_count table(date datetime, counter bigint)
insert into @result_count(date, counter)
select '20090620 18:00:35', 6892767114  union all
select '20090620 19:00:32', 12981296571 union all
select '20090620 20:00:28', 13063830579 union all
select '20090620 21:00:25', 13191184039 union all
select '20090620 22:00:21', 13199165345 union all
select '20090620 23:00:18', 13214207840 union all
select '20090621 01:00:15', 13223942006 union all
select '20090621 02:00:12', 13233278002 union all
---
select '20090625 21:00:46', 13295976282 union all
select '20090625 22:00:42', 13295362032 union all
select '20090625 23:00:39', 13296804960 union all
select '20090626 01:00:37', 13253043724 union all
select '20090626 02:00:34', 13293559190 union all
select '20090626 03:00:30', 13297263442 union all
select '20090626 04:00:27', 13292556080 union all
select '20090626 05:00:23', 13296864319

declare @datepar_at datetime, @datepar_to datetime
select @datepar_at = '20090625 23:00:39', @datepar_to = '20090620 23:00:18'
-- end of test data

;with q1 as (
   select date, counter, row_number() over(order by date) rn
     from @result_count
    where date between dateadd(day, -1, @datepar_at) and dateadd(day, 1, @datepar_at)
), q2 as (
   select date, counter, row_number() over(order by date) rn
     from @result_count
    where date between dateadd(day,-1,@datepar_to) and dateadd(day,1,@datepar_to)
)
select q1.date, q1.counter, q2.counter
  from q1
  join q2 on q2.rn = q1.rn

date                    counter              counter
----------------------- -------------------- --------------------
2009-06-25 21:00:46.000 13295976282          6892767114
2009-06-25 22:00:42.000 13295362032          12981296571
2009-06-25 23:00:39.000 13296804960          13063830579
2009-06-26 01:00:37.000 13253043724          13191184039
2009-06-26 02:00:34.000 13293559190          13199165345
2009-06-26 03:00:30.000 13297263442          13214207840
2009-06-26 04:00:27.000 13292556080          13223942006
2009-06-26 05:00:23.000 13296864319          13233278002

(8 row(s) affected)
30 июн 09, 11:08    [7357719]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос  [new]
Kirillich
Member

Откуда:
Сообщений: 581
Паганель,

спасибо!
30 июн 09, 11:34    [7357906]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить