powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Помогите с SQL-запросом
20 сообщений из 20, страница 1 из 1
Помогите с SQL-запросом
    #35307236
Ello4ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если без условия с датами, то всё работает нормально. Но мне нужно выбрать строки между DATE1 и DATE2 (задаются на форме)

Запрос.Source = "SELECT TLISTPRJ.PNUMB, TLISTPRJ.PDATE, TSPECPAU.ANUMB, Sum(TSPECPAU.AQTYP) AS Colichestvo, TTYPESTR.TUNIC, TTYPESTR.TSTRI, TLISTORD.PUNIC, TLISTORD.ONUMB, TSPECPAU.PNUMB "+
"FROM (((TLISTPRJ INNER JOIN TLISTORD ON TLISTPRJ.PUNIC = TLISTORD.PUNIC) INNER JOIN TSPECPAU ON (TLISTORD.OUNIC = TSPECPAU.OUNIC) AND (TLISTORD.PUNIC = TSPECPAU.PUNIC)) LEFT JOIN TGROUPPR ON TSPECPAU.ANUMB = TGROUPPR.ANUMB) LEFT JOIN TTYPESTR ON TGROUPPR.TNUMB = TTYPESTR.TNUMB WHERE PDATE BETWEEN DATE1 AND DATE2 "+
"GROUP BY TLISTPRJ.PNUMB, TLISTPRJ.PDATE, TSPECPAU.ANUMB, TTYPESTR.TUNIC, TTYPESTR.TSTRI, TLISTORD.PUNIC, TLISTORD.ONUMB, TSPECPAU.PNUMB";
...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35307252
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нечто вроде этого:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
.....
|ГДЕ
|	АктСверкиВзаиморасчетов.Дата МЕЖДУ &Дата1 И &Дата2
.....

Запрос.УстановитьПараметр("Дата1", Дата1НаФорме);
Запрос.УстановитьПараметр("Дата2", Дата2НаФорме);

...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35307280
Ello4ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделала WHERE (((TLISTPRJ.PDATE) Between &DATE1 And &DATE2))
ругается на "&"
...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35307359
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>WHERE (((TLISTPRJ.PDATE) Between &DATE1 And &DATE2))

конструктор запросов же есть... откуда вы такие жуткие конструкции берете
...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35307363
Ello4ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
работаю с внешним источником данных
...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35307397
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ello4kaработаю с внешним источником данныхтогда составляйте строку сразу

Код: plaintext
1.
2.
3.
4.
"PDATE BETWEEN " 
+ ФорматВнешнегоИсточника(DATE1)
 +" AND "
 + ФорматВнешнегоИсточника(DATE2)
+ "....

где ФорматВнешнегоИсточника() - ф-я, возвращающая дату отформатированной в текст в формате требуемом SQL-диалектом внешнего источника.
...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35307410
Ello4ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если внешний источник - база фаербирда, то что написать в качестве "ФорматВнешнегоИсточника"?
...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35307429
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35307435
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35307657
Dolter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно и строку передать, а можно использовать cast или convert той же самой строки в дату
...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35307817
Танцор Пасадобля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
WHERE PDATE BETWEEN :DATE1 AND :DATE2
...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35307901
Ello4ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WHERE (((TLISTPRJ.PDATE) Between :DATE1 And :DATE2 ))

ошибка: LCPI.IBProvider.3.Free: Команда требует входящие параметры [2].
...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35308259
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ello4kaWHERE (((TLISTPRJ.PDATE) Between :DATE1 And :DATE2 ))

ошибка: LCPI.IBProvider.3.Free: Команда требует входящие параметры [2].
каков тип объекта Запрос?
По Запрос.Source =... подозреваю, что ADODB.Recordset

покажите таки код объявления Запрос
...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35308319
Ello4ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос=СоздатьОбъект("ADODB.Recordset");
Запрос.ActiveConnection = БД;
Запрос.Source = "
...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35308472
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда как-то так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Команда = СоздатьОбъект("ADODB.Command");
Команда.ActiveConnection = БД;
Команда.CommandText = "SELECT ....."

//data1 = Команда.CreateParameter("DATA1", adadDate, adParamInput);
//data2 = Команда.CreateParameter("DATA2", adadDate, adParamInput);

Команда.Parameters.Refresh;
Команда.Parameters("DATA1")=....;
Команда.Parameters("DATA2")=....;
Запрос = Команда.Execute;

т.е. посмотрите в сети примеры по части
Код: plaintext
1.
2.
3.
ADODB.Command
ADODB.Parameters
.CreateParameter
.Parameters.Append 
и т.п. работе с ADODB.Command
...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35308513
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS это если передавать параметры (т.е.
Код: plaintext
...Between :DATE1 And :DATE2
).
Если формировать строку SQL с правильно отформатированными строками дат (т.е. не параметрически, а готовую SQL-строку с явно проставленными датами), как я предложил вам выше - можете прямо подставлять ее в свой код, не меняя его. (т.е. в
Код: plaintext
Запрос.Source = "...";
)
...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35317135
LexN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите и еще одному. с запросом. Суть дела в получении остатков на дату прямым запросом через ADODB. Сам запрос я своял. В QA отрабатывает на ура. А вот из 1С получаю данные только первой колонки.

Таблица типа.
Товар, НачОст,Приход, Расход, КонОст.

Проблема возникает с полями типа Numeric.

Проверил постейшим запросом.

RecordSet = Соединение.ПолучитьЗначение(1,"RecordSet");
СтрокаЗапроса = "SELECT * FROM RG405";

Command.CommandText = СтрокаЗапроса;
Попытка
RecordSet = Command.Execute();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;

КолКолон = RecordSet.Fields.Count-1;

Пока RecordSet.EOF = 0 Цикл
Стр = "";
Для НН= 0 По КолКолон Цикл
Попытка
ЗН = RecordSet.Fields(НН).Value;
Стр = ""+Стр + " - "+ЗН;
Исключение
Сообщить(НН);
КонецПопытки;
КонецЦикла;
Сообщить(Стр);

RecordSet.MoveNext();
КонецЦикла;


Что я не так делаю?... Не пойму...
...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35318005
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexNПомогите и еще одному. с запросом. Суть дела в получении остатков на дату прямым запросом через ADODB. Сам запрос я своял. В QA отрабатывает на ура. А вот из 1С получаю данные только первой колонки.

Таблица типа.
Товар, НачОст,Приход, Расход, КонОст.

Проблема возникает с полями типа Numeric.

Проверил постейшим запросом.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
RecordSet = Соединение.ПолучитьЗначение( 1 ,"RecordSet");
СтрокаЗапроса = "SELECT * FROM RG405";
	
Command.CommandText = СтрокаЗапроса;
Попытка
       RecordSet = Command.Execute();
Исключение
       Сообщить(ОписаниеОшибки());
КонецПопытки;
		
КолКолон = RecordSet.Fields.Count- 1 ;
	
Пока RecordSet.EOF =  0  Цикл
       Стр = "";
       Для НН=  0  По КолКолон Цикл
              Попытка
                     ЗН = RecordSet.Fields(НН).Value;
                     Стр = ""+Стр + " - "+ЗН;
              Исключение
                     Сообщить(НН);
              КонецПопытки;
       КонецЦикла;
       Сообщить(Стр);

       RecordSet.MoveNext();
КонецЦикла;



Что я не так делаю?... Не пойму...а либо закомментировать try /except либо получить из него полное сообщение об ошибке не пытались?
Я рискну правда без текста ошибки предположить, что вот так:
Код: plaintext
ЗН ="" + RecordSet.Fields(НН).Value; 
1С-у проще будет разбираться с типами (принудительно все вгоняете в текст - и ладушки).
...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35318021
Фотография Палестинец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема возникает с полями типа Numeric.
а чота вспоминаю - была такая ерунда. кастуй к floatу.
...
Рейтинг: 0 / 0
Помогите с SQL-запросом
    #35318531
LexN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сама таблица RG405 имеет следующую структуру:
PERIOD datetime
SP4062 char
SP408 char
SP418 char
SP3117 numeric
SP411 numeric

Так вот ошибки возникают как раз на последних двух колонках. Все остальное отрабарывает как надо.

Я тоже слышал когда-то что 1С-ка хреново работает с numeriс. И думаю что этот баг уже победили. По крайней мере надеюсь.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Помогите с SQL-запросом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]