Topic: Поиск по месяцу

День добрый.
Есть таблица в базе данных в которую сохраняются данные, есть поле дата.
Как в TableGrid вывести заявки за месяц такого то года?
Спасибо...

Re: Поиск по месяцу

strftime ('%m/%Y', DATE)

Re: Поиск по месяцу

hadjieff wrote:

strftime ('%m/%Y', DATE)

А можно поподробнее или дайте направление на какой нибудь пример

Re: Поиск по месяцу

Выколупал из одной своей поделки может Вам пригодится.
....только перепроверьте все а то может что не так работает  , давненько писал ...

Post's attachments

Attachment icon kopir.zip 11.15 kb, 380 downloads since 2018-02-14 

Re: Поиск по месяцу

max1779signal wrote:

День добрый.
Есть таблица в базе данных в которую сохраняются данные, есть поле дата.
Как в TableGrid вывести заявки за месяц такого то года?
Спасибо...

Приветствую.


Для компонента DateTimePicker, который используете для поиска данных с помощью кнопки с действием Поиск, просто установите свойство Kind= MonthYear

Dmitry.

Re: Поиск по месяцу

Спасибо всем за помощь...

Re: Поиск по месяцу

Использую вот такой запрос для поиска по бд

SELECT
status.status_pole,
bazovoe_pole.id,
bazovoe_pole.scet_nomer_pole,
strftime('%d.%m.%Y', bazovoe_pole.scet_dataObrabotka_pole),
firma.firma_nazvanie_pole, 
strftime('%d.%m.%Y', bazovoe_pole.k_oplate_data_pole),
bazovoe_pole.k_oplate_summ_pole,
bazovoe_pole.k_oplate_zametka_pole,
strftime('%d.%m.%Y', bazovoe_pole.oplata_data_pole),
bazovoe_pole.oplata_summ_pole,
bazovoe_pole.oplata_zametka_pole,
strftime('%d.%m.%Y', bazovoe_pole.prihodnoyOrder_data_pole),
bazovoe_pole.prihodnoyOrder_nomer_pole,
bazovoe_pole.prihodnoyOrder_zametka_pole,
strftime('%d.%m.%Y', bazovoe_pole.scet_dataSceta_pole),
bazovoe_pole.scet_zametka_pole,
bazovoe_pole.soderzanieZakaza_pole,
valuta.valuta_name_pole,
valuta.valuta_znacenie_pole
                      
FROM              
bazovoe_pole 
LEFT OUTER JOIN status ON status.id=bazovoe_pole.id_status
LEFT OUTER JOIN firma ON firma.id=bazovoe_pole.id_firma
LEFT OUTER JOIN valuta ON valuta.id=bazovoe_pole.id_valuta              

WHERE
(CASE WHEN '{Edit1}' <> '' THEN bazovoe_pole.k_oplate_zametka_pole LIKE '%{Edit1}%' or
bazovoe_pole.oplata_zametka_pole LIKE '%{Edit1}%' or
bazovoe_pole.prihodnoyOrder_nomer_pole LIKE '%{Edit1}%' or 
bazovoe_pole.prihodnoyOrder_zametka_pole LIKE '%{Edit1}%' or                                             
bazovoe_pole.scet_nomer_pole LIKE '%{Edit1}%' or
bazovoe_pole.scet_zametka_pole LIKE '%{Edit1}%' or       
bazovoe_pole.soderzanieZakaza_pole LIKE '%{Edit1}%' or
firma.firma_nazvanie_pole LIKE '%{Edit1}%' or 
status.status_pole LIKE '%{Edit1}%'                                            
ELSE 1=1 END) AND                                                    
(CASE WHEN {DateTimePicker1} IS NOT NULL THEN date(bazovoe_pole.scet_dataSceta_pole) = date({DateTimePicker1}) ELSE 1=1 END)AND
(CASE WHEN {ComboBox1} <> -1 THEN bazovoe_pole.id_firma = {ComboBox1} ELSE 1=1 END)
                                                                
ORDER BY bazovoe_pole.id DESC

Необходимо добавить поиск по месяцу, пробовал разные варианты с форума не один не заработал...

Re: Поиск по месяцу

Попробуйте так

SELECT
status.status_pole,
bazovoe_pole.id,
bazovoe_pole.scet_nomer_pole,
strftime('%d.%m.%Y', bazovoe_pole.scet_dataObrabotka_pole),
firma.firma_nazvanie_pole, 
strftime('%d.%m.%Y', bazovoe_pole.k_oplate_data_pole),
bazovoe_pole.k_oplate_summ_pole,
bazovoe_pole.k_oplate_zametka_pole,
strftime('%d.%m.%Y', bazovoe_pole.oplata_data_pole),
bazovoe_pole.oplata_summ_pole,
bazovoe_pole.oplata_zametka_pole,
strftime('%d.%m.%Y', bazovoe_pole.prihodnoyOrder_data_pole),
bazovoe_pole.prihodnoyOrder_nomer_pole,
bazovoe_pole.prihodnoyOrder_zametka_pole,
strftime('%d.%m.%Y', bazovoe_pole.scet_dataSceta_pole),
bazovoe_pole.scet_zametka_pole,
bazovoe_pole.soderzanieZakaza_pole,
valuta.valuta_name_pole,
valuta.valuta_znacenie_pole
                      
FROM              
bazovoe_pole 
LEFT OUTER JOIN status ON status.id=bazovoe_pole.id_status
LEFT OUTER JOIN firma ON firma.id=bazovoe_pole.id_firma
LEFT OUTER JOIN valuta ON valuta.id=bazovoe_pole.id_valuta              

WHERE
(CASE WHEN '{Edit1}' <> '' THEN bazovoe_pole.k_oplate_zametka_pole LIKE '%{Edit1}%' or
bazovoe_pole.oplata_zametka_pole LIKE '%{Edit1}%' or
bazovoe_pole.prihodnoyOrder_nomer_pole LIKE '%{Edit1}%' or 
bazovoe_pole.prihodnoyOrder_zametka_pole LIKE '%{Edit1}%' or                                             
bazovoe_pole.scet_nomer_pole LIKE '%{Edit1}%' or
bazovoe_pole.scet_zametka_pole LIKE '%{Edit1}%' or       
bazovoe_pole.soderzanieZakaza_pole LIKE '%{Edit1}%' or
firma.firma_nazvanie_pole LIKE '%{Edit1}%' or 
status.status_pole LIKE '%{Edit1}%'                                            
ELSE 1=1 END) AND                                                    
(CASE WHEN {DateTimePicker1} IS NOT NULL THEN strftime('%m/%Y', bazovoe_pole.scet_dataSceta_pole) = strftime('%m/%Y', {DateTimePicker1}) ELSE 1=1 END) AND
(CASE WHEN {ComboBox1} <> -1 THEN bazovoe_pole.id_firma = {ComboBox1} ELSE 1=1 END)
                                                                
ORDER BY bazovoe_pole.id DESC

Для DateTimePicker1 установите свойство Kind= MonthYear

Dmitry.

Re: Поиск по месяцу

Работает, спасибо.