Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / SQL-выборка по датам в Delphi / 2 сообщений из 2, страница 1 из 1
01.04.2004, 14:59
    #32465674
va2dim
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL-выборка по датам в Delphi
База учета пошива одежды:

В базе DateTable - имеются такие поля
DataKroiaOrder - дата кроя
DataStartingOrder - дата пошива

Модель могут покроить в прошлом месяце, а пошить в этом
если забита DataKroiaOrder, то переходящий заказ, если нет, то
кроили в том же месяце, что и шили

data="%03.04"
Чать таблицы DateTable:
DataStartingOrder DataKroiaOrder
12.02.04
12.03.04
12.04.04 12.03.04
12.04.04

Выборка должна быть:
DataStartingOrder DataKroiaOrder
12.03.04
12.04.04 12.03.04

- надо выбрать модели покроенные в этом месяце.

По отдельность каждая из частей OR работает а вместе почему то нет:
выполняется только одна часть
Почему нет объединения

и выборка имеет вид:
12.04.04 12.03.04

Мой код - выделенная чать - работа с датами автор

DataModule1.Query2.SQL.Add('SELECT SUM(Quantity)');
DataModule1.Query2.SQL.Add('FROM DateTable, OrderTable, UchetTable, ArticleTable, ModelTable ');
DataModule1.Query2.SQL.Add('WHERE DateTable.Key1 = OrderTable.LinkKey AND OrderTable.Key1 = UchetTable.LinkKey AND ArticleN = ArticleTable.Key1 AND ModelNameN = ModelTable.Key1');

DataModule1.Query2.SQL.Add('AND ( (DataStartingOrder LIKE ''' +date+ ''' AND DataKroiaOrder = '''' ) OR (DataKroiaOrder LIKE ''' +date+ ''')) ');

DataModule1.Query2.SQL.Add('AND ModelNames LIKE '''+tmp_modelType+'''');

DataModule1.Query2.SQL.Add('AND Articles LIKE '''+tmp_article+'''');
...
Рейтинг: 0 / 0
05.04.2004, 05:06
    #32468426
;-)Denn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL-выборка по датам в Delphi
автор>По отдельность каждая из частей OR работает а вместе почему то нет
А ты, уверен в том, что они работают по отдельности?

А я уверен в том, что:
Код: plaintext
 (DataStartingOrder LIKE ''' +date+ ''' AND DataKroiaOrder = '''' ) 
не работает (результат 0 строк)!

Скорей всего проблема в том что: DataKroiaOrder <> '' .

Попробуй так:
Код: plaintext
(DataStartingOrder LIKE ''' +date+ ''' AND DataKroiaOrder IS NULL ) 

И вообще, мне не понятно как можно сравнивать пустое значение поля с пустой строкой.
Если код не помог - читай дальше...

Если ты хочешь, чтоб тебе помогли ответь на несколько вопросов:
1. Как заносятся данные в таблицу DataKroiaOrder (строчка кода)
2. Под какую БД ты пишешь: Paradox,DBase,....
3. Что возвращает след. SQL-скрипты

Код: plaintext
1.
 SELECT * FROM DataKroiaOrder 
 WHERE DataStartingOrder LIKE '%03.04'

Код: plaintext
1.
 SELECT * FROM DataKroiaOrder 
 WHERE DataKroiaOrder = ''
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / SQL-выборка по датам в Delphi / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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