2017-01-10 5 views
1

Я работаю с VB6 и получаю доступ. Тогда у меня есть таблица МЭРА так:Доступ SQL с MID не группирует мои строки

Codigo  Titulo 
--------- ---------------- 
600  Cuenta 600 
60000000 Cuenta 60000000 
610  Cuenta 610 
6100  Cuenta 6100 
6101  Cuenta 6101 
61010000 Cuenta 61010000 
61010001 Cuenta 61010001 
61010002 Cuenta 61010002 
6102  Cuenta 6102 
61020000 Cuenta 61020000 
61030000 Cuenta 61030000 
61040000 Cuenta 61040000 

мне нужно выбрать по длине из Codigo. Когда я выбираю длина = 2, то мне нужно зарегистрировать 60 и 61. При выборе длина = 3, то мне нужно 600 и 610.
Когда я выбрать длину = 5 мне нужно 60000, 61010, 61020,61030 и 61040.

я использую этот SQL:

SELECT DISTINCTROW MID(CODIGO,1,4) AS CODIGOB,TITULO 
FROM MAYOR 
WHERE LEN(CODIGO)>=4 
ORDER BY CODIGO 

но я Codigo = 6000,6100,6101,6101,6101,6101,6102,6102,6103,6104 и я не нужно повторить.

Любое предложение пожалуйста.

Благодаря

ответ

0

Ваша спецификация говорит

мне нужно выбрать по длине из Codigo

но ваш запрос фильтр WHERE LEN(CODIGO)>=4

Попробуйте использовать DISTINCT вместо и сопрягать заказ BY, так:

SELECT DISTINCT MID(CODIGO, 1, 4) AS CODIGOB, TITULO 
FROM MAYOR 
WHERE LEN(CODIGO) = 4 
ORDER BY MID(CODIGO, 1, 4) 
+0

Спасибо Ларс, я думаю, проблема в TITULO. Если используется «SELECT DISTINCT MID (CODIGO, 1, 4) AS CODIGOB ОТ МЭРА ГДЕ LEN (CODIGO) = 4 ORDER BY MID (CODIGO, 1, 4)", затем запустите нормально. –