|
Беда с запросом через OLE DB
|
|||
---|---|---|---|
#18+
следующий запрос выполнялся нормально 4 месяца на 5-й IIF(ISNULL(psf_link.idpsfmtr),"",STR(psf_link.idpsfmtr)) AS ПоступТовДокИд выдает пустое значение, хотя в таблице данные есть и связка по этому полю работает. т.е. IIF(ISNULL(psf.vsf),"",STR(psf.vsf)) AS ВидПоступДок содержит искомые значения. SELECT IIF(ISNULL(header.SK),"", STR(header.SK)) AS Ид ,IIF(ISNULL(header.NSF),"",header.NSF) AS Номер ,IIF(empty(header.DOTGR),header.Date_vv,header.DOTGR) AS Дата ,IIF(empty(header.DPRIH),DATE(1980,1,1),header.DPRIH) AS ДатаПриходаСчета ,IIF(EMPTY(header.DSF),DATE(1980,1,1),header.DSF) AS ДатаСчета ,IIF(ISNULL(header.VSF),"",STR(header.VSF)) AS Вид ,IIF(ISNULL(header.SSF),STR(0,17,2),STR(header.SSF,17,2)) AS Сумма ,IIF(ISNULL(header.ID_DOG),"",STR(header.ID_DOG)) AS ДоговорИд ,IIF(ISNULL(header.FDIR),"",STR(header.FDIR)) AS ФилиалКод ,IIF(ISNULL(psf_link.idpsfmtr),"",STR(psf_link.idpsfmtr)) AS ПоступТовДокИд ,IIF(ISNULL(psf.vsf),"",STR(psf.vsf)) AS ВидПоступДок FROM Bd\psf header LEFT JOIN Bd\psf_link psf_link on header.sk = psf_link.idpsfusl LEFT JOIN Bd\psf psf on psf_link.idpsfmtr = psf.sk where header.del = .F. and header.otgr = '200305' and header.vsf in (4,8) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2003, 16:57 |
|
Беда с запросом через OLE DB
|
|||
---|---|---|---|
#18+
Нужна помощь. Ну хоть одно предположение. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2003, 10:44 |
|
Беда с запросом через OLE DB
|
|||
---|---|---|---|
#18+
1)вместо iif(isnull() проще использовать nvl. 2) поле фоксовый курсор создается по длине первого результата . вместо "" надо space(50) или что быстрее просто " ", вместо str() str(,50) , вместо 0 - 00000000000000 и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2003, 10:57 |
|
Беда с запросом через OLE DB
|
|||
---|---|---|---|
#18+
Без данных трудно понять как работает Скорее всего проблема в left join попробуй заменить на время на Full join чтобы понять что не так ключ OUTER напрмер left outer join - брать все строки из левой таблицы, даже если в правой нет сопоставления значения попадает в интервал? where header.del = .F. and header.otgr = '200305' and header.vsf in (4,8) попробуй например так IIF(ISNULL(psf.vsf), "999 999.99" ,STR(psf.vsf)) если ничего тогда разбей на два запроса ... будет видно где пропадает зачет str()? если не секрет? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2003, 11:00 |
|
Беда с запросом через OLE DB
|
|||
---|---|---|---|
#18+
Поправка " " следует читать как "<много пробелов>" . Местный парсер урезал... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2003, 11:15 |
|
Беда с запросом через OLE DB
|
|||
---|---|---|---|
#18+
str() нужен для 1С - она не умеет работать с целочисленными значениями и значениями с плавающей точкой OLEDB :( вариант с nvl прошел, но вот вопрос: что могло поменяться в таблице (причем выборочно ??) по сравнению с другими периодами??? Спасибо всем за участие ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2003, 15:19 |
|
Беда с запросом через OLE DB
|
|||
---|---|---|---|
#18+
Для старшего офицерского состава. См. п.2 из моего поста. В этом периоде у вас первая запись в запросе была NULL . Соответственно создалось поле с длинной с(1) и значением "", а последующие записи в это поле просто не умещались... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2003, 15:24 |
|
|
start [/forum/topic.php?fid=41&msg=32189287&tid=1598201]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
176ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 271ms |
total: | 548ms |
0 / 0 |