powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SQL-запрос. Вставить циклы
39 сообщений из 39, показаны все 2 страниц
SQL-запрос. Вставить циклы
    #39618615
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Есть рабочий SQL-запрос, который вначале удаляет все строки в таблице в базе данных, потом выгружает данные за январь 2014 г., далее заносит полученные строки в таблицу базы данных.
SQL-запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
IF (SELECT count(*)  FROM dbo.Table1) > 0 
    DELETE FROM dbo.Table1;
GO

WITH
TempTable AS (
SELECT
	CAST(F1."[Торговые точки].[Клиент].[Клиент].[MEMBER_CAPTION]" AS VARCHAR(20)) AS [Клиент],
	CAST(F1."[Торговые точки].[Код ТТ].[Код ТТ].[MEMBER_CAPTION]" AS VARCHAR(20)) AS [Код ТТ],
	CAST(F1."[Продукция].[Код продукции].[Код продукции].[MEMBER_CAPTION]" AS VARCHAR(20)) AS [Код продукции],	
	CONVERT(nvarchar(10), F1."[Время].[Дата].[Дата].[MEMBER_CAPTION]" , 104) AS [Дата],
	F1."[Measures].[Отгрузки шт]" AS [Отгрузки шт],
	F1."[Measures].[Возвраты шт]" AS [Возвраты шт],
	F1."[Measures].[Реализация шт]" AS [Реализация шт],
FROM
        OPENROWSET('MSOLAP',,'Provider=...',
	'SELECT
	{[Measures].[Отгрузки шт],
	[Measures].[Возвраты шт],	
	[Measures].[Реализация шт]}
ON 0,
NON EMPTY
	[Торговые точки].[Клиент].[Клиент]*
	[Торговые точки].[Код ТТ].[Код ТТ]*
	[Продукция].[Код продукции].[Код продукции]*	
	[Время].[Дата].[Дата]
ON 1
FROM
	(SELECT
		([Время].[Месяц].&[2014-01-01T00:00:00],
		[Торговые точки].[Клиент].&[42],
		[Продукция].[Тип продукции].&[1],
		[Города].[Город].&[7]) ON 0 FROM PROFIT)'
	) AS F1
)

INSERT INTO
	dbo.Table1 (
		[Клиент],
		[Код ТТ],
		[Код продукции],	
		[Дата],
		[Отгрузки шт],
		[Возвраты шт],
		[Реализация шт])
SELECT
	[Клиент],
	[Код ТТ],
	[Код продукции],	
	[Дата],
	[Отгрузки шт],
	[Возвраты шт],
	[Реализация шт]	
FROM
	TempTable

Скажите, как написать SQL-запрос так, чтобы работал цикл? То есть выгружались строки сначала за январь 2014 г и сохранял строки в таблицу, потом выгружал строки за февраль 2014 г и добавлял строки в таблицу, и до декабря 2017 года.

Специально в SQL-запросе используется Openrowset с MDX-запросом. Сразу за 2014-2017 гг не выгружаются данные. Учитывая, что если выгружать за январь 2014 года с нулевыми датами (если в MDX-запросе убрать NON EMPTY ), то данные не выгрузятся. Также не обращайте внимание, что поля на русском языке.
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39618656
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
формировать строку запроса динамикой, выполнять в цикле.
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619145
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
DECLARE @DT DATE = '2014-01-01'
WHILE @DT <= '2017-12-01'
BEGIN
	PRINT @DT

	-- put your dynamic query here

	SET @DT = DATEADD(MONTH, 1, @DT)
END
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619261
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mind,

Дата находится в MDX-запросе внутри SQL-запроса и указывается в таком формате [Время].[Месяц].&[ 2014 - 01 -01T00:00:00]. Получается дату вставлять надо примерно так
Код: sql
1.
'[Время].[Месяц].&[' + Год() + '-' + Месяц() + '-01T00:00:00]'


Причем номер месяца, например, январь, должен отображаться не как '1', а как '01'.

Получился такой запрос, но в номере месяца до октября отсутствует нужный ноль .
Код: sql
1.
2.
3.
4.
5.
6.
DECLARE @DT DATE = '2014-01-01'
WHILE @DT <= '2017-12-01'
BEGIN
	PRINT  '[Время].[Год].&[' +  CONVERT(nvarchar(10),YEAR(@DT),4 ) + '-' + convert(nvarchar(10),MONTH(@DT),02 ) + '-01T00:00:00]'
	SET @DT = DATEADD(MONTH, 1, @DT)
END


Как правильно написать?
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619269
ferzmikk,
Код: sql
1.
right('00'+cast(MONTH(@DT) as varchar),2)
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619321
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кролик-зануда,

Получилось, спасибо!
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619330
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вставляю условие в основной код и показывает ошибку.

Что тут не так?
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619406
Шыфл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

Код: sql
1.
2.
3.
4.
5.
6.
DECLARE @DT DATE = '2014-01-01'
WHILE @DT <= '2017-12-01'
BEGIN
	PRINT  '[Время].[Год].&[' +  CONVERT(nvarchar(10),YEAR(@DT),4 ) + '-' + right('00'+convert(nvarchar(10),MONTH(@DT),02 ),2) + '-01T00:00:00]'
	SET @DT = DATEADD(MONTH, 1, @DT)
END
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619449
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkВставляю условие в основной код и показывает ошибку.

Что тут не так?
В общем весь запрос
SQL-Запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
IF (SELECT count(*)  FROM dbo.Table1) > 0 
    DELETE FROM dbo.Table1;
GO

DECLARE @DT DATE = '2014-01-01';

WHILE @DT <= '2017-12-01'
BEGIN

	PRINT  '[Время].[Год].&[' +  CONVERT(nvarchar(10),YEAR(@DT),4 ) + '-' + right('00'+cast(MONTH(@DT) as varchar),2) + '-01T00:00:00]';
        --Выгружаем за определенный месяц и год
	WITH
	TempTable AS (
	SELECT
		CAST(F1."[Торговые точки].[Клиент].[Клиент].[MEMBER_CAPTION]" AS VARCHAR(20)) AS [Клиент],
		CAST(F1."[Торговые точки].[Код ТТ].[Код ТТ].[MEMBER_CAPTION]" AS VARCHAR(20)) AS [Код ТТ],
		CAST(F1."[Продукция].[Код продукции].[Код продукции].[MEMBER_CAPTION]" AS VARCHAR(20)) AS [Код продукции],	
		CONVERT(nvarchar(10), F1."[Время].[Дата].[Дата].[MEMBER_CAPTION]" , 104) AS [Дата],
		F1."[Measures].[Отгрузки шт]" AS [Отгрузки шт],
		F1."[Measures].[Возвраты шт]" AS [Возвраты шт],
		F1."[Measures].[Реализация шт]" AS [Реализация шт],
	FROM
	        OPENROWSET('MSOLAP',,'Provider=...',
		'SELECT
		{[Measures].[Отгрузки шт],
		[Measures].[Возвраты шт],	
		[Measures].[Реализация шт]}
	ON 0,	
	NON EMPTY
		[Торговые точки].[Клиент].[Клиент]*
		[Торговые точки].[Код ТТ].[Код ТТ]*
		[Продукция].[Код продукции].[Код продукции]*	
		[Время].[Дата].[Дата]
	ON 1
	FROM
		(SELECT
			([Время].[Год].&[' +  CONVERT(nvarchar(10),YEAR(@DT),4 ) + '-' + right('00'+cast(MONTH(@DT) as varchar),2) + '-01T00:00:00],
			[Торговые точки].[Клиент].&[42],
			[Продукция].[Тип продукции].&[1],
			[Города].[Город].&[7]) ON 0 FROM PROFIT)'
		) AS F1
	)
        --Полученные строки добавляются в таблицу Table1
	INSERT INTO
		dbo.Table1 (
			[Клиент],
			[Код ТТ],
			[Код продукции],	
			[Дата],
			[Отгрузки шт],
			[Возвраты шт],
			[Реализация шт])
	SELECT
		[Клиент],
		[Код ТТ],
		[Код продукции],	
		[Дата],
		[Отгрузки шт],
		[Возвраты шт],
		[Реализация шт]	
	FROM
		TempTable

	SET @DT = DATEADD(MONTH, 1, @DT)
END


Выдает ошибку
Сообщение 102, уровень 15, состояние 1, строка 43
Неправильный синтаксис около конструкции "+"."
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619458
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

запрос в переменну, потом в OPENROWSET
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619468
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
		([Время].[Год].&[' +  CONVERT(nvarchar(10),YEAR(@DT),4 ) + '-' + right('00'+cast(MONTH(@DT) as nvarchar),2) + '-01T00:00:00],



бо похоже что у вас в итоге абракадарба а не мдикс
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619481
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxx
Код: sql
1.
		([Время].[Год].&[' + CONVERT(nvarchar(10),YEAR(@DT),4 ) + '-' + right('00'+cast(MONTH(@DT) as nvarchar),2) + '-01T00:00:00],




бо похоже что у вас в итоге абракадарба а не мдикс
приведите все к типу nvarchar я хотел сказать:)
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619484
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxx
Код: sql
1.
		([Время].[Год].&[' +  CONVERT(nvarchar(10),YEAR(@DT),4 ) + '-' + right('00'+cast(MONTH(@DT) as nvarchar),2) + '-01T00:00:00],



бо похоже что у вас в итоге абракадарба а не мдикс
Код: sql
1.
([Время].[Год].&[' +  CONVERT(nvarchar(4),YEAR(@DT) ) + '-' + right('00'+CONVERT(nvarchar(2),MONTH(@DT)),2) + '-01T00:00:00],
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619505
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

в итоге работает нет ?
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619514
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxxferzmikk,

в итоге работает нет ?
также
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619530
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
весь оперроусет в строку и выведите принтом. Чудес не бывает
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619540
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxxвесь оперроусет в строку и выведите принтом. Чудес не бывает
нет еснно не бывет

OPENROWSET does not accept variables for its arguments.
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619603
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как-то так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
DECLARE @DT DATETIME = '20170101'
DECLARE @tSQL NVARCHAR(MAX)
DECLARE @tOLAP NVARCHAR(MAX)
WHILE @DT <= '20171201'
BEGIN
  SET @tOLAP = '
SELECT {
  [Measures].[Отгрузки шт],
  [Measures].[Возвраты шт],	
  [Measures].[Реализация шт] }
ON 0,
NON EMPTY
	[Торговые точки].[Клиент].[Клиент]*
	[Торговые точки].[Код ТТ].[Код ТТ]*
	[Продукция].[Код продукции].[Код продукции]*	
	[Время].[Дата].[Дата]
ON 1
FROM (
  SELECT (
    [Время].[Месяц].&[' + CONVERT( VARCHAR, @DT, 127 ) + '],
    [Торговые точки].[Клиент].&[42],
    [Продукция].[Тип продукции].&[1],
    [Города].[Город].&[7] ) 
  ON 0
  FROM
    PROFIT
)'
  ;
  SET @tSQL = '
SELECT
  CAST(F1."[Торговые точки].[Клиент].[Клиент].[MEMBER_CAPTION]" AS VARCHAR(20)) AS [Клиент],
  CAST(F1."[Торговые точки].[Код ТТ].[Код ТТ].[MEMBER_CAPTION]" AS VARCHAR(20)) AS [Код ТТ],
  CAST(F1."[Продукция].[Код продукции].[Код продукции].[MEMBER_CAPTION]" AS VARCHAR(20)) AS [Код продукции],	
  CONVERT(nvarchar(10), F1."[Время].[Дата].[Дата].[MEMBER_CAPTION]" , 104) AS [Дата],
  F1."[Measures].[Отгрузки шт]" AS [Отгрузки шт],
  F1."[Measures].[Возвраты шт]" AS [Возвраты шт],
  F1."[Measures].[Реализация шт]" AS [Реализация шт],
FROM
  OPENROWSET( ''MSOLAP'',, ''Provider=...'', 
    ''' + @tOLAP + '''
  ) AS F1
;'
  ;
  PRINT @tSQL
  ;
  /*
  INSERT
  INTO
    dbo.Table1 (
      [Клиент],
      [Код ТТ],
      [Код продукции],	
      [Дата],
      [Отгрузки шт],
      [Возвраты шт],
      [Реализация шт])
  EXEC( @tSQL )
  */
  ;
	SET @DT = DATEADD(MONTH, 1, @DT)
END

...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619929
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При запуске пишет Ошибка при преобразовании типа данных nvarchar к numeric. . Это все из за поля [Реализация сумма без НДС] .
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619930
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619931
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему пишет Numeric, если задан decimal(18,2)? Как исправить?
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619938
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkПочему пишет Numeric, если задан decimal(18,2)? Как исправить?Никак не исправить, это синонимы.
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619949
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgferzmikkПочему пишет Numeric, если задан decimal(18,2)? Как исправить?Никак не исправить, это синонимы.
И как быть теперь?
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619950
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

что вам это нумерик если у вас проблема с варчаром?
посмотрите, что вам возвращает в этом поле ваш запрос без конвертации (может у вас там разделитель дробной части не тот).
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39619970
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkalexeyvgпропущено...
Никак не исправить, это синонимы.
И как быть теперь?Вы про что спрашиваете?

Вы спросили, почему ошибка с DECIMAL, а сервер пишет про NUMERIC?

Я вам ответил - это нормально, это описано в документации, и ничего страшного в этом нет, просто забейте. Лучше разбирайтесь с самой ошибкой.
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39620083
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дедушкаferzmikk,

что вам это нумерик если у вас проблема с варчаром?
посмотрите, что вам возвращает в этом поле ваш запрос без конвертации (может у вас там разделитель дробной части не тот).
Нашел причину - отрицательное значение "[Реализация сумма без НДС]."
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39620103
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получается эту запись надо по другому записать?
Код: sql
1.
CAST(F1."[Measures].[Реализация сумма без НДС]" AS decimal(18,2)) AS [Реализация сумма без НДС],
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39620320
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkНашел причину - отрицательное значение "[Реализация сумма без НДС]."Причину чего вы нашли?
Чего вы всё полунамёками изъясняетесь? Программирование - это точная наука :-)
Код: sql
1.
select cast('-1' as decimal(18, 2))
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39620337
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgferzmikkНашел причину - отрицательное значение "[Реализация сумма без НДС]."Причину чего вы нашли?
Чего вы всё полунамёками изъясняетесь? Программирование - это точная наука :-)
Код: sql
1.
select cast('-1' as decimal(18, 2))


а может у него так

Код: sql
1.
select cast('—1' as decimal(18, 2))
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39620346
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKа может у него так

Код: sql
1.
select cast('—1' as decimal(18, 2))


Yes
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39620363
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgferzmikkНашел причину - отрицательное значение "[Реализация сумма без НДС]."Причину чего вы нашли?
Чего вы всё полунамёками изъясняетесь? Программирование - это точная наука :-)

SQL-Запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
WITH
	TempTable AS (
	SELECT
		CAST(F1."[Торговые точки].[Клиент].[Клиент].[MEMBER_CAPTION]" AS VARCHAR(20)) AS [Клиент],
		CAST(F1."[Торговые точки].[Код ТТ].[Код ТТ].[MEMBER_CAPTION]" AS VARCHAR(20)) AS [Код ТТ],
		CAST(F1."[Продукция].[Код продукции].[Код продукции].[MEMBER_CAPTION]" AS VARCHAR(20)) AS [Код продукции],	
		CONVERT(nvarchar(10), F1."[Время].[Дата].[Дата].[MEMBER_CAPTION]" , 104) AS [Дата],
		F1."[Measures].[Отгрузки шт]" AS [Отгрузки шт],
		F1."[Measures].[Возвраты шт]" AS [Возвраты шт],
		F1."[Measures].[Реализация шт]" AS [Реализация шт],
		CAST(F1."[Measures].[Реализация сумма без НДС]" AS decimal(18,2)) AS [Реализация сумма без НДС],
		CAST(F1."[Measures].[Цена]"  AS decimal(18,2)) AS [Цена]
		FROM
        OPENROWSET('MSOLAP',,'Provider=...',
	'SELECT
	{[Measures].[Отгрузки шт],
	[Measures].[Возвраты шт],	
	[Measures].[Реализация шт]}
ON 0,
NON EMPTY
	[Торговые точки].[Клиент].[Клиент]*
	[Торговые точки].[Код ТТ].[Код ТТ]*
	[Продукция].[Код продукции].[Код продукции]*	
	[Время].[Дата].[Дата]
ON 1
FROM
	(SELECT
		([Время].[Месяц].&[2014-01-01T00:00:00],
		[Торговые точки].[Клиент].&[42],
		[Продукция].[Тип продукции].&[1],
		[Города].[Город].&[7]) ON 0 FROM PROFIT)'
	) AS F1
)

	SELECT
		[Клиент],
		[Код ТТ],
		[Код продукции],
		[Дата],
		[Отгрузки шт],
		[Возвраты шт],
		[Реализация шт],
		[Реализация сумма без НДС],
		[Цена]
	FROM
		Temptable


При таком запросе выгружается часть строк, то есть прерывает выгрузку и выдает такую ошибку. А в следующей строке имеется отрицательное значение поля [Реализация сумма без НДС] . Из за этой строки была прервана выгрузка.
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39620421
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkTaPaKа может у него так

Код: sql
1.
select cast('—1' as decimal(18, 2))


Yes
Как теперь быть?
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39620425
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkferzmikkпропущено...

Yes
Как теперь быть?
да как душе угодно, или орать и ничего не делать, или реплейсить всё что в голову приёдёт, что-бы влезло или просто пропустить и заливать что смогли
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39620430
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,

Код: sql
1.
select cast(Replace ('—1', '—','-') as decimal(18, 2))
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39620459
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkДедушкаferzmikk,

что вам это нумерик если у вас проблема с варчаром?
посмотрите, что вам возвращает в этом поле ваш запрос без конвертации (может у вас там разделитель дробной части не тот).
Нашел причину - отрицательное значение "[Реализация сумма без НДС]."
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39620464
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

так не отрицательное причина

Код: sql
1.
CAST( as float)
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39620503
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,

другой вопрос, занафига вы такие значения вообще в куб сложили?
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39620529
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дедушкаferzmikk,

другой вопрос, занафига вы такие значения вообще в куб сложили?
Не я формировал куб
...
Рейтинг: 0 / 0
SQL-запрос. Вставить циклы
    #39621299
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkДедушкаferzmikk,

другой вопрос, занафига вы такие значения вообще в куб сложили?
Не я формировал кубТак изучите куб, типы данных, и потом делайте либо очистку, либо правильно пишите запросы, типа чего то такого: select cast(cast('-9.999999999999E-1' as float) as decimal(18, 2))
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SQL-запрос. Вставить циклы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]