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

Откуда:
Сообщений: 8
Microsoft SQL Server Compact 3.5

Не удается выполнить апдейт. Причем внутренний select отрабатывает. В чем ошибка?
UPDATE words
SET [Count] = A.[Count] + B.[Count]
From
	--select A.SourceWord  as Sw, A.[Count] as SwCount,B.SourceWord,B.[Count]
		--From
		(select * from Words 
			where SourceWord Like'%s') A,

		(select SourceWord, [Count] from Words 
			where SourceWord not Like'%s') B

	where substring(A.SourceWord, 1, len(A.SourceWord) -1) = B.SourceWord 

Ошибка

Major Error 0x80040E14, Minor Error 25501
> UPDATE words
SET [Count] = A.[Count] + B.[Count]
...
There was an error parsing the query. [ Token line number = 3,Token line offset = 1,Token in error = From ]



Для примера данные таблицы:

SourceWord, Count
Word 5
Words 3
Tab 10
Tabs 7


Хочу сложить число значений и удалить множественные строки, что бы получилось
Word 8
Tab 17
16 окт 11, 13:43    [11447900]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка апдейта  [new]
iljy
Member

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

откройте документацию и почитайте синтаксис UPDATE
16 окт 11, 13:47    [11447910]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка апдейта  [new]
moid
Member

Откуда:
Сообщений: 8
Подправил:
UPDATE Words
SET Words.[Count] = Words.[Count] + 
	(select C.[Count] from (select A.[Count], B.SourceWord 
		From
		(select * from Words 
			where SourceWord Like'%s') A,

		(select SourceWord, [Count] from Words 
			where SourceWord not Like'%s') B

	where substring(A.SourceWord, 1, len(A.SourceWord) -1) = B.SourceWord)C
where Words.SourceWord = C.SourceWord ) 

И все та же ошибка:

There was an error parsing the query. [ Token line number = 3,Token line offset = 3,Token in error = select ]
16 окт 11, 15:56    [11448181]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка апдейта  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
iljy
moid,

откройте документацию и почитайте синтаксис UPDATE
Только для Microsoft SQL Server Compact Edition!
Небось, он много чего не умеет по сравнению с нормальным сервером
16 окт 11, 16:33    [11448255]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка апдейта  [new]
Glory
Member

Откуда:
Сообщений: 104751
moid
Подправил:

А вы подправили синтаксис именно для SQL Server Compact ?
16 окт 11, 16:34    [11448256]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка апдейта  [new]
iljy
Member

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

шаг номер 2: смотрим, что в понимании SQL Compact есть expression. Ну и заодно вдумываемся, как подразумевалось обратится к полю таблицы, создаваемой в предложении SET, из предложения WHERE.
16 окт 11, 16:34    [11448257]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка апдейта  [new]
moid
Member

Откуда:
Сообщений: 8
Синтаксис вроде верный, в чем ошибка не пойму
17 окт 11, 20:40    [11455180]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка апдейта  [new]
iljy
Member

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

http://msdn.microsoft.com/ru-ru/library/ms174501(v=SQL.100).aspx
17 окт 11, 20:44    [11455202]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка апдейта  [new]
moid
Member

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

Не понимаю в чем я не прав, ткните пожалуйста пальцем
17 окт 11, 20:53    [11455242]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка апдейта  [new]
iljy
Member

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

вы хоть где-нибудь в описании синтаксиса выражения видите упоминание подзапросов?
17 окт 11, 20:59    [11455264]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить