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

Откуда: Москва
Сообщений: 470
Здравствуйте
при выполнении запроса
SELECT     TOP 100 PERCENT *, dbo.Zart.ZPayer & ' ' & dbo.Zart.ZBill AS z
FROM         dbo.Zart INNER JOIN
                      dbo.Status ON dbo.Zart.ZStatus = dbo.Status.SId
ORDER BY dbo.Zart.ZName

выдает ошибку
---------------------------
SQL Server Enterprise Manager
---------------------------
Database Server: Microsoft SQL Server

Version: 08.00.0760

Runtime Error: [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value 'Планка бампера' to a column of data type int.
---------------------------
31 авг 09, 20:05    [7600160]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксическая ошибка  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Конкатенация строк в MS SQL - +
& - побитовое AND
31 авг 09, 20:12    [7600171]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксическая ошибка  [new]
erererererу1
Guest
интересно, что может хранится в таблице с именем Zart - наверное это имя собственное
31 авг 09, 20:13    [7600174]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксическая ошибка  [new]
style1
Member

Откуда: Москва
Сообщений: 470
pkarklin
Конкатенация строк в MS SQL - +
& - побитовое AND

dbo.Zart.ZPayer + ' ' + dbo.Zart.ZBillвыдает такую же ошибку
31 авг 09, 20:18    [7600186]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксическая ошибка  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
style1
dbo.Zart.ZPayer + ' ' + dbo.Zart.ZBillвыдает такую же ошибку


Так... Интересно... Какие типы данных у полей Zart.ZStatus и Status.SId и что за объекты во FROM - таблицы или вьюхи?
31 авг 09, 20:27    [7600210]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксическая ошибка  [new]
style1
Member

Откуда: Москва
Сообщений: 470
pkarklin
style1
dbo.Zart.ZPayer + ' ' + dbo.Zart.ZBillвыдает такую же ошибку


Так... Интересно... Какие типы данных у полей Zart.ZStatus и Status.SId и что за объекты во FROM - таблицы или вьюхи?


объекты - таблицы... объединение таблиц работает нормально если я не собираю выше указанную стороку... там dbo.Zart.ZPayer - int, dbo.Zart.ZBill - varchar
31 авг 09, 20:30    [7600221]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксическая ошибка  [new]
style1
Member

Откуда: Москва
Сообщений: 470
Zart.ZStatus и Status.SId оба int
31 авг 09, 20:31    [7600224]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксическая ошибка  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
style1,

Мдя...

автор
CAST(Zart.ZBill AS varchar(30))


ЗЫ. Читаем BOL про приоритеты типов данных.
31 авг 09, 20:37    [7600246]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксическая ошибка  [new]
style1
Member

Откуда: Москва
Сообщений: 470
так ошибок не выдает... но и не фильтрует))

SELECT     TOP 100 PERCENT *
FROM         dbo.Zart INNER JOIN
                      dbo.Status ON dbo.Zart.ZStatus = dbo.Status.SId
WHERE     (STR(dbo.Zart.ZPayer) + dbo.Zart.ZBill = '4377заявка на з/ч')
ORDER BY dbo.Zart.ZName
31 авг 09, 20:41    [7600263]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксическая ошибка  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21531
STR
Returns character data converted from numeric data.

Syntax
STR ( float_expression [ , length [ , decimal ] ] )

....

Return Types
char


Вам же написали - CAST
31 авг 09, 20:46    [7600274]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксическая ошибка  [new]
style1
Member

Откуда: Москва
Сообщений: 470
Заработало так
SELECT     TOP 100 PERCENT *
FROM         dbo.Zart INNER JOIN
                      dbo.Status ON dbo.Zart.ZStatus = dbo.Status.SId
WHERE     (STR(dbo.Zart.ZPayer) + dbo.Zart.ZBill = '      4377заявка на з/ч')
ORDER BY dbo.Zart.ZName

только не понятно почему столько пробелов вылезло при STR(dbo.Zart.ZPayer)
31 авг 09, 20:47    [7600278]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксическая ошибка  [new]
style1
Member

Откуда: Москва
Сообщений: 470
Shocker.Pro,

да Cast пробелы не добавляет))

спасибо
31 авг 09, 20:49    [7600282]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксическая ошибка  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
style1
так ошибок не выдает... но и не фильтрует))

SELECT     TOP 100 PERCENT *
FROM         dbo.Zart INNER JOIN
                      dbo.Status ON dbo.Zart.ZStatus = dbo.Status.SId
WHERE     (STR(dbo.Zart.ZPayer) + dbo.Zart.ZBill = '4377заявка на з/ч')
ORDER BY dbo.Zart.ZName


Если у Вас Zbill в конце, то почему в критерии цисло впереди?! И оставьте STR в поке.

PS. Ума не приложу зачем выполнять конкатенацию, чтобы отфильтровать?!
31 авг 09, 20:49    [7600284]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксическая ошибка  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21531
Непонятно, зачем вы объединяете, чтобы потом фильтровать.
SELECT     TOP 100 PERCENT *
FROM         dbo.Zart INNER JOIN
                      dbo.Status ON dbo.Zart.ZStatus = dbo.Status.SId
WHERE     dbo.Zart.ZPayer=4377 AND dbo.Zart.ZBill = 'заявка на з/ч'
ORDER BY dbo.Zart.ZName


Так будет работать гораздо быстрее при наличии индексов в таблице
31 авг 09, 20:52    [7600287]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксическая ошибка  [new]
style1
Member

Откуда: Москва
Сообщений: 470
pkarklin,

условие находится в форме в таком виде.. вот и приходится выполнять конкатенацию
31 авг 09, 20:52    [7600288]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксическая ошибка  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
style1
pkarklin,

условие находится в форме в таком виде.. вот и приходится выполнять конкатенацию


А в форме оно откуда берется? Если данные разбиты по двум полям, то почему на форме оно одно?!
31 авг 09, 21:13    [7600316]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксическая ошибка  [new]
style1
Member

Откуда: Москва
Сообщений: 470
pkarklin,

данные берутся из поля со списком... если подскажете как вытащить данные из двух колонок поля со списком буду признателен
31 авг 09, 21:22    [7600331]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксическая ошибка  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
style1
pkarklin,

данные берутся из поля со списком... если подскажете как вытащить данные из двух колонок поля со списком буду признателен


Это Вам на форум по Вашему средству разработки.
31 авг 09, 21:24    [7600336]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксическая ошибка  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21531
style1
если подскажете как вытащить данные из двух колонок поля со списком буду признателен


А как вы вытаскиваете '4377заявка на з/ч' ?
31 авг 09, 21:54    [7600406]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить