:: Visual Foxpro, Foxpro for DOS
Странный запрос
Jlutko
Автор

Сообщений: 161
Откуда: Пермская область
Дата регистрации: 27.09.2005
Собственно запрос:
SELECT Orgbase.rmnemo_org, Orgbase.showname,;
IIF(AT("/",Orgbase.inn)>0,LEFT(Orgbase.inn,AT("/",Orgbase.inn)-1),Orgbase.inn) AS inn,;
IIF(AT("/",Orgbase.inn)>0,SUBSTR(Orgbase.inn,AT("/",Orgbase.inn)+1),"") AS kpp,;
Bankacc.account, Bankacc.bankname, Bankacc.bankbic, Bankacc.corracc;
FROM ;
parus!bankacc ;
RIGHT OUTER JOIN parus!orgbase ;
ON Bankacc.orbase_rn = Orgbase.rn;
WHERE Orgbase.type = ( "1" );
ORDER BY Orgbase.rmnemo_org
Да. Все отрабатывается, но в колонке "kpp" отражкется лишь 1 сивол. Не могу понять в чем проблема.



Исправлено 1 раз(а). Последнее : Jlutko, 15.09.17 11:07
Ratings: 0 negative/0 positive
Re: Странный запрос
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Надо явно длину поля kpp задать, CAST-ом, или PADR-ом
Ratings: 0 negative/0 positive
Re: Странный запрос
Jlutko
Автор

Сообщений: 161
Откуда: Пермская область
Дата регистрации: 27.09.2005
of63
Надо явно длину поля kpp задать, CAST-ом, или PADR-ом
Делал. Не "катит"



Исправлено 1 раз(а). Последнее : Jlutko, 15.09.17 13:14
Ratings: 0 negative/0 positive
Re: Странный запрос
of63

Сообщений: 25254
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
А делал как именно?
Ratings: 0 negative/0 positive
Re: Странный запрос
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Jlutko
of63
Надо явно длину поля kpp задать, CAST-ом, или PADR-ом
Делал. Не "катит"

Неправильно делал значит...

PADR(IIF( ...), 20) - даст поле размером в 20 символов.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Странный запрос
Jlutko
Автор

Сообщений: 161
Откуда: Пермская область
Дата регистрации: 27.09.2005
Да. Все типа "просто"
Я бы сюда вопросы задавал...
В MS Acлess сей запрос отрабатывает.
SELECT orgbase.rmnemo_org, orgbase.type, Trim(orgbase.showname) AS Name, IIf(InStr(orgbase.inn,"/")>0,Left(orgbase.inn,InStr(orgbase.inn,"/")-1),Trim(orgbase.inn)) AS Inn, IIf(InStr(orgbase.inn,"/")>0,Mid(orgbase.inn,InStr(orgbase.inn,"/")+1),"") AS Kpp, Trim(bankacc.account) AS R_Sch, Trim(bankacc.bankname) AS Bank, bankacc.bankbic
FROM bankacc RIGHT JOIN orgbase ON bankacc.orbase_rn = orgbase.rn
WHERE (((orgbase.type)="1"))
ORDER BY orgbase.rmnemo_org;
Ratings: 0 negative/0 positive
Re: Странный запрос
Jlutko
Автор

Сообщений: 161
Откуда: Пермская область
Дата регистрации: 27.09.2005
Делал. Не катит!
Ratings: 0 negative/0 positive
Re: Странный запрос
alex;

Сообщений: 2855
Откуда: Москва
Дата регистрации: 23.11.2004
Собсно,
упросить запрос, проверить данные и dbf на корректность и целостность.

Приложить сюда пример dbf.
Версия фокса.

Что хочется от нас?



Исправлено 2 раз(а). Последнее : alex;, 16.09.17 06:01
Ratings: 0 negative/1 positive
Re: Странный запрос
Taran

Сообщений: 13624
Откуда: Красноярск
Дата регистрации: 16.01.2008
Jlutko
Делал. Не катит!

Это заметно.
Ratings: 0 negative/0 positive
Re: Странный запрос
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Jlutko
Делал. Не катит!

Пример который можно запустить и увидеть что "не катит", мы так и не узреем? Т.к. у меня, к примеру, всё "катит" наилучшим образом.
CREATE CURSOR orgbase (inn C(20))
INSERT INTO orgbase (inn) VALUES ("123/")
INSERT INTO orgbase (inn) VALUES ("12345")
INSERT INTO orgbase (inn) VALUES ("12345/6")
INSERT INTO orgbase (inn) VALUES ("12345/78")
INSERT INTO orgbase (inn) VALUES ("12345/9999")
* Ваш неправильный запрос.
SELECT IIF(AT("/",orgbase.inn)>0,LEFT(orgbase.inn,AT("/",orgbase.inn)-1),orgbase.inn) inn,;
IIF(AT("/",orgbase.inn)>0,SUBSTR(orgbase.inn,AT("/",orgbase.inn)+1),"") kpp ;
FROM orgbase
* Исправленный вариант
SELECT PADR(IIF(AT("/",orgbase.inn)>0,LEFT(orgbase.inn,AT("/",orgbase.inn)-1),orgbase.inn),20) inn,;
PADR(IIF(AT("/",orgbase.inn)>0,SUBSTR(orgbase.inn,AT("/",orgbase.inn)+1),""),20) kpp ;
FROM orgbase

P.S. Держать в одном поле два разных реквизита (или два одинаковых в виде "списка") это нарушение первой нормальной формы. Просто, к слову.


------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 22 (Гостей: 22)

© 2000-2024 Fox Club 
Яндекс.Метрика