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

Откуда:
Сообщений: 58
всем привет
есть таблица в которой находятся данные и в которой я делаю выборку
declare @s varchar(255)
select @s='recepient=17000&field100=020010290&field101=05&field102=05&field103=2011&backpoint=data_entry.html'
select substring(@s, 26, 9)
from Payments where OperatorID=17000 and InitializeDateTime between ('18.07.2011 00:00') AND ('01.08.2011 23:59')
мне выводится нужные мне значение: 020010290
после этого мне нужно по данным значениям из другой таблицы вытащить данные, подскажите как лучше:

1. сохранять полученные данные во временную таблицу и потом делать объединение таблиц:
create table #tmpTable(s varchar(255))
INSERT INTO #tmpTable(s) values(@s) - не срабатывает

2. сделать большой запрос
create table #tmpTable(s varchar(255))
INSERT INTO #tmpTable values(
declare @s varchar(255)
select @s='recepient=17000&field100=020010290&field101=05&field102=05&field103=2011&backpoint=data_entry.html'
select substring(@s, 26, 9)
from Payments where OperatorID=17000 and InitializeDateTime between ('18.07.2011 00:00') AND ('01.08.2011 23:59')) - не работает
select * from #tmpTable
2 авг 11, 17:40    [11060635]     Ответить | Цитировать Сообщить модератору
 Re: sql server 2008 помогите разобраться  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Почему бы не сделать объединение сразу.
2 авг 11, 17:42    [11060650]     Ответить | Цитировать Сообщить модератору
 Re: sql server 2008 помогите разобраться  [new]
Glory
Member

Откуда:
Сообщений: 104751
dolf85
1. сохранять полученные данные во временную таблицу и потом делать объединение таблиц:
create table #tmpTable(s varchar(255))
INSERT INTO #tmpTable(s) values(@s) - не срабатывает

Так и пишет - "Не срабатываю !" ?
2 авг 11, 17:42    [11060652]     Ответить | Цитировать Сообщить модератору
 Re: sql server 2008 помогите разобраться  [new]
dolf85
Member

Откуда:
Сообщений: 58
я просто новичок, еще не особо понимаю про объединение сразу, поэтому решил делать поэтапно, а по поводу "не срабатывает" - он мне заполняет строчку не значением, которое я получаю, а просто @s. если не трудно объясните пожалуйста.
2 авг 11, 17:53    [11060718]     Ответить | Цитировать Сообщить модератору
 Re: sql server 2008 помогите разобраться  [new]
Glory
Member

Откуда:
Сообщений: 104751
create table #tmpTable(s varchar(255))
INSERT INTO #tmpTable values(
declare @s varchar(255)
select @s='recepient=17000&field100=020010290&field101=05&field102=05&field103=2011&backpoint=data_entry.html'

INSERT INTO #tmpTable (s)
select substring(@s, 26, 9)
from Payments where OperatorID=17000 and InitializeDateTime between ('18.07.2011 00:00') AND ('01.08.2011 23:59')
select * from #tmpTable 

Только не понятно, зачем для извлечения подстроки из переменной @s нужно делать запрос к таблице Payments ?
2 авг 11, 17:58    [11060761]     Ответить | Цитировать Сообщить модератору
 Re: sql server 2008 помогите разобраться  [new]
dolf85
Member

Откуда:
Сообщений: 58
Category Timestamp Duration Message Line Position
Error 03.08.2011 10:40:38 0:00:00.000 SQL Server Database Error: Неправильный синтаксис около ключевого слова "declare". 3 0
Statement 03.08.2011 10:40:49 0:00:00.062 Executed Successfully 1 0
Error 03.08.2011 10:41:23 0:00:00.000 SQL Server Database Error: Неправильный синтаксис около ключевого слова "declare". 3 0
3 авг 11, 10:44    [11063035]     Ответить | Цитировать Сообщить модератору
 Re: sql server 2008 помогите разобраться  [new]
dolf85
Member

Откуда:
Сообщений: 58
Только не понятно, зачем для извлечения подстроки из переменной @s нужно делать запрос к таблице Payments ?
потому что там много платежей и мне нужно из каждой строки вытащить значение и потом по каждому значению из другой таблицы вытащить данные
3 авг 11, 10:45    [11063054]     Ответить | Цитировать Сообщить модератору
 Re: sql server 2008 помогите разобраться  [new]
Glory
Member

Откуда:
Сообщений: 104751
dolf85
потому что там много платежей и мне нужно из каждой строки вытащить значение и потом по каждому значению из другой таблицы вытащить данные

А причем тут тогда substring(@s, 26, 9) ?
Вы думаете, что в переменную как-то попадает значение из каждой записи ?
3 авг 11, 10:47    [11063061]     Ответить | Цитировать Сообщить модератору
 Re: sql server 2008 помогите разобраться  [new]
dolf85
Member

Откуда:
Сообщений: 58
мда что-то я конкретно ошибься, не выводятся данные((((
3 авг 11, 11:14    [11063289]     Ответить | Цитировать Сообщить модератору
 Re: sql server 2008 помогите разобраться  [new]
dolf85
Member

Откуда:
Сообщений: 58
попытался сделать вот так:
declare @s varchar(255)
select @s= params from Payments where OperatorID=17000 and InitializeDateTime
between ('18.07.2011 00:00') AND ('01.08.2011 23:59')
select substring(@s, 26, 9)

он мне выводит только данные из последней строчки.
3 авг 11, 11:25    [11063378]     Ответить | Цитировать Сообщить модератору
 Re: sql server 2008 помогите разобраться  [new]
Glory
Member

Откуда:
Сообщений: 104751
dolf85

он мне выводит только данные из последней строчки.

Ну так в переменную @s можно записать только одно значение.
Отсюда повторный вопрос - переменная вам зачем тут ?
3 авг 11, 11:28    [11063408]     Ответить | Цитировать Сообщить модератору
 Re: sql server 2008 помогите разобраться  [new]
dolf85
Member

Откуда:
Сообщений: 58
ну я незнаю как по-другому сделать, а стоит задача:
вытащить из таблицы payments поля params определенное значение, а потом исходя из полученного значения вытащить из другой таблицы данные по значению полученному из таблицы payments.
3 авг 11, 11:35    [11063449]     Ответить | Цитировать Сообщить модератору
 Re: sql server 2008 помогите разобраться  [new]
Glory
Member

Откуда:
Сообщений: 104751
Ну так начните с азов http://www.firststeps.ru/sql/sql1.html
3 авг 11, 11:37    [11063466]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить