![]() |
|
|
#1
|
|||
|
|||
![]() Помогите организовать SQL запрос для вывода отчета по движению товаров за период. Вот как я пытался но ничего не вышло:
SELECT ОрдерКод, ОрдерНомер, ОрдерСклад, ОрдерМОЛ, ОрдерДата, ОперацияКод FROM [Справочник Ордеров] WHERE (ОрдерДата>="'+Edit1.Text+'") and (ОрдерДата<="'+Edit2.Text+'")' |
#2
|
|||
|
|||
![]() А ошибку-то какую выдает? В каком формате дата в Edit1 и Edit2?
Кстати проверку того, что дата попадает в заданный интервал, можно писать так: WHERE ОрдерДата BETWEEN Дата1 AND Дата2 |
#3
|
|||
|
|||
![]() Формат. Например. 15.10.2007
|
#4
|
|||
|
|||
![]() Мне необходимо вывести все ордера за данный период!
|
#5
|
|||
|
|||
![]() Дату укажите в формате ГГГГ.ММ.ДД.
Вообще, проще всего такие коллизии решать с помощью параметров: Код:
var Q: TQuery; begin Q := TQuery.Create(nil); try Q.SQL.Add('SELECT ОрдерКод, ОрдерНомер, ОрдерСклад, ОрдерМОЛ, ОрдерДата, ОперацияКод FROM [Справочник Ордеров]'); Q.SQL.Add('WHERE ОрдерДата BETWEEN :DStart AND :DEnd'); Q.ParamByName('DStart').AsDateTime := StrToDate(Edit1.Text); Q.ParamByName('DEnd').AsDateTime := StrToDate(Edit2.Text); Q.Open; { Тут делаем чего хотели с данными запроса } finally Q.Free; end; end; |
#6
|
|||
|
|||
![]() А если прописать через ADOQuery! Я вот как пробовал но полученные значения почему то не выводятся!?
Код:
var tmpStr : string; begin ADOQuery1.Active := False; ADOQuery1.SQL.Clear; tmpStr := 'SELECT ОрдерКод, ОрдерСклад, ОрдерМОЛ, ОрдерДата, ОперацияКод FROM [Справочник Ордеров] WHERE ОрдерДата BETWEEN :("'+Edit1.Text+'") and :("'+Edit2.Text+'")'; ADOQuery1.SQL.Add(tmpStr); ADOQuery1.Active := True; end; Модератор Не забываем использовать теги. |