День добрый уважаемые форумчане. Столкнулся с такой проблемой. Есть у меня БД состоящая из 5 таблиц. В одной из таблиц хранятся повторяющиеся элементы. Есть такое поле как "Дата". Суть в том что поле дата имеет формат не "даты" а формат "строки". В моем приложение была разработана часть кода которая переводит текущую дату в строку и затем записывает ее в БД. Столкнулся с такой проблемой при попытке получить Максимальную дата с конкретной ID_Card, творится какой-то мрак. То запрос отрабатывает корректно и никаких проблем. То выкидывает что значений по условию не найдено. Таблицы. Запрос и проблема приведены ниже.
create table sale_sum
(
ID_SALE int auto_increment
primary key,
ID_CARD int not null,
ID_USER int not null,
BUY_SUM float not null,
CASHBEK_SUM float not null,
GIFT_SUM int null,
DATE_BUY varchar(10) not null,
COMMENT varchar(255) null,
constraint sale_sum_discountcard_ID_CARD_fk
foreign key (ID_CARD) references discountcard (ID_CARD),
constraint sale_sum_users_ID_USER_fk
foreign key (ID_USER) references users (ID_USER)
)
К этой таблице был написан следующий запрос.
SELECT DISTINCT ID_USER, DATE_BUY
FROM sale_sum
WHERE ID_CARD=?
AND DATE_BUY = ( SELECT date_format(( SELECT max(STR_TO_DATE(DATE_BUY,'%d.%m.%Y'))
FROM sale_sum), '%d.%m.%Y'));
Данный запрос должен вернуть ID_user и максимальную дату. Исходные данные.
При id_card=1; Ничего нет
При id_card = 2; Ничего нет
При id_card = 3; Id_card DATE_BUY 2 06.06.2018
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости