Ошибка в критериях набора записей зависит от того, является ли ключ текстовым или числовым - PullRequest
0 голосов
/ 21 января 2019

Мне нужно извлечь некоторые данные из одной таблицы, в том же столбце у меня есть номер или текстовое значение.если мне нужно извлечь запись до значения 100%, и я использую эту строку:

Select count(TypeTrasp) as nr, 
[DataAttesa KPI2-1] as Data FROM [db_Out$] 
Where TypeTrasp = 'AOG' and [DGR] < 1 group by [DataAttesa KPI2-1]`

Я получаю эту ошибку во время выполнения '-2147217913 (80040e07)'

С этой строкой (текстключ) Я получаю правильную запись:

select count(TypeTrasp) as nr, 
[DataAttesa KPI2-1] as Data FROM [db_Out$] 
Where TypeTrasp = 'AOG' and [DGR]= 'Out of Time' group by [DataAttesa KPI2-1]`

Я знаю, что в текстовом ключе мне нужно использовать «xxx», но в числовом ключе я не могу.

РЕДАКТИРОВАТЬ, яизмените имя поля с DGR на 2-1, ниже образца моей таблицы Excel, цель - продолжение записи для каждого [2-1] критерия

table example.

Ответы [ 2 ]

0 голосов
/ 22 января 2019

для отредактированного вопроса попробуйте эти два запроса:

    SELECT [DataAttessaKPI2-1] AS data, [TypeTrasp], COUNT([2-1]) AS nr
    FROM [db_Out$]
    GROUP BY [DataAttessaKPI2-1], [TypeTrasp]


    SELECT [TypeTrasp],[2-1],COUNT([DataAttessaKPI2-1]) AS nr
    FROM [db_Out$]
    WHERE [TypeTrasp]='Priority' AND [2-1]='Out of Time'
    GROUP BY [TypeTrasp],[2-1]

Результаты первого запроса:

    data            TypeTrasp      nr
    19/07/2018          PRIORITY    2
    01/08/2018          STD         1
    03/07/2018          STD         4
    04/07/2018          STD         5
    06/07/2018          STD         1
    16/07/2018          STD         1
    17/07/2018          STD         2
    30/07/2018          STD         1

Результаты второго запроса (с предложением WHERE):

    TypeTrasp   2-1                 nr
    PRIORITY    Out of Time         2
0 голосов
/ 22 января 2019

Ошибка времени выполнения '-2147217913 (80040e07)' связана с неправильными преобразованиями. Когда вы говорите, что «в одном столбце у меня есть номер или текстовое значение». в этом столбце у вас действительно есть только текстовые значения. В предложении where попробуйте [DGR] <'1' с номером в квотах. </p>

 Select count(TypeTrasp) as nr, 
 [DataAttesa KPI2-1] as Data FROM [db_Out$] 
 Where TypeTrasp = 'AOG' and [DGR] < '1' group by [DataAttesa KPI2-1]`

Также рассмотрите возможность использования TRY_CONVERT (int, [DGR]), чтобы определить, является ли текст действительным числом. https://docs.microsoft.com/en-us/sql/t-sql/functions/try-convert-transact-sql?view=sql-server-2017

...