ОШИБКА [07002] [Microsoft] [Текстовый драйвер ODBC] Слишком мало параметров.Ожидаемый 1 - PullRequest
0 голосов
/ 13 июня 2018

enter image description here У меня возникла эта проблема при попытке запроса файла ODBC CSV.Это приходит с этим сообщением об ошибке.Мой план состоит в том, чтобы отформатировать дату, и после этого я начну выполнять процесс подсчета на основе каждого дня каждого серийного номера AC.

ERROR [07002] [Microsoft][ODBC Text Driver] Too few parameters. Expected 1.It is strange.


SELECT  DSN, Format([Date Time],  "yyyy-MM-dd")
From  a1.csv 
Group by [DSN],Format([Date Time],  "yyyy-MM-dd");`

Ответы [ 2 ]

0 голосов
/ 15 июня 2018

Для тех, у кого может быть похожая проблема.Если возможно, лучше использовать OLEDB, чем использовать ODBC в качестве источника данных. Строка подключения OLEDB выглядит следующим образом:

OLE DB Connection String 

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\temp\\csv;Mode=Read;Extended Properties="text;HDR=YES;FMT=CSVDelimited"

А также работающий сейчас код SQL:

SELECT        [HC SERIAL CODE], Startdate, COUNT(*) AS Expr2
FROM            (SELECT DISTINCT DSN, [HC SERIAL CODE], Format([Date time], 'yyyy-MM-dd') AS Startdate
                          FROM            a1.csv) a
GROUP BY Startdate, [HC SERIAL CODE]
ORDER BY Startdate
0 голосов
/ 14 июня 2018

Я считаю, что проблема в том, что формат ввода DATE TIME интерпретируется не как фактическое значение DATETIME, а как строка, и поэтому использование функции FORMAT не может работать.

Iсделал краткую проверку моего предположения и попробовал это, что работает для меня (хотя и не проверял группировку):

declare @1 TABLE (DSN INT , timestamp VARCHAR(64) ) ;

insert into @1 VALUES (123 , '10/02/2018 12:20:00'),
                      (123 , '13/02/2018 22:20:00'),
                      (123 , '13/02/2018 22:20:00'),
                      (124 , '13/02/2018 22:20:00'),
                      (124 , '14/02/2018 22:20:00'),
                      (124 , '14/02/2018 22:20:00')  ;

select DSN , (SUBSTRING(timestamp,7,4) + '-' + 
              SUBSTRING(timestamp,4,2) + '-' + 
              SUBSTRING(timestamp,1,2)         ) AS BLABLA 

от @ 1;

Быть результатом:

DSN BLABLA
123 2018-02-10
123 2018-02-13
123 2018-02-13
124 2018-02-13
124 2018-02-14
124 2018-02-14
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...