Мне нужно подсчитать количество результатов для разбивки на страницы.Mysql рассчитывается с вложенными внутренними запросами в условии IF
Demo Query
select A.order_id,
IF(
E.assign_date IS NOT NULL AND E.assign_date != '0000-00-00',
DATE_FORMAT(E.assign_date , '%d-%b-%y'),
(select data from other tables with other conditions)
) AS assign_date,
.......
where
.....
and assign_date > 2013-08-01
Количество запросов, которые я использую
Select count(A.order_id) from order A, size B, production E ........... where ....... and assign_date > 2013-08-01
мне нужно добавить, что если условие, так что я могу рассчитывать результаты правильно
Longer версии
Я проверил вопрос s опубликовано на SO, и не смог найти ответ. Я работаю на странице, где я показываю разбивку на страницы.
Для разбивки на страницы я использовал счетчик, который работает. В запросе графа нет этого условия.
Для получения фактического запроса, я хочу, чтобы я мог опубликовать весь свой запрос здесь, но он имеет более 200 строк, если их отсортировать хорошо.
Для разбивки на страницы я использую следующий запрос.
$strQuery = "SELECT COUNT(DISTINCT(A.order_id)) AS totalRecs FROM $tbls WHERE $whereClause $WhereExt";
$tbls
и $whereClause
очень долго.
В таблице orders
таблица I m содержит assing_on
поле даты, которое показывает, что заказ назначен для производства. Я создал страницу списка результатов из данных, а в PHP добавил, что если assign_on
дата пуста/null. Если это, я запускаю другой запрос, чтобы получить расчетную дату начала производства.
Предполагаемая дата начала производства получает дату от количества расчетов и параметры
- Orders.estimated даты поставки (это устанавливается при размещении заказа)
- mustReadyDate = предполагаемая дата - буфер пересылки (другая таблица) - поставщик праздники (еще 3 таблицы) - поставщик выходные (еще 2 таблицы)
- totalDaysRequired для производства = общая длина порядка/Стандартные скорости плетения в день (другую таблица)
- muststartdate = mustReadyDate - totalDa ysRequired;
Выше четыре точки находятся в запросе, не PHP работы не связаны с
данных выборки запроса, имеющий это условие и считать запрос не имея этого состояния в данный момент.
IF(
E.assign_date IS NOT NULL AND E.assign_date != '$mysqlEmptyDate',
DATE_FORMAT(E.assign_date , '" . reporting_DateFormat . "'),
($mustLoomStartDateQry_fm)
) AS assign_date,
мне нужно добавить еще одно условие в том, где положение графа запроса, чтобы проверить, если aasign_date > one week from today
я просто хочу знать, как я могу добавить такой длинный запрос в части счета, поэтому я только выполнить по запросу.
** EDIT **
Если какой-либо один заинтересован в просмотре полный запрос http://pastebin.com/zqzbpEei но, пожалуйста, я предлагаю вам это только, чтобы дать вам представление о ...
Почему бы не использовать КОГДА? –
'Когда' где? Мне нужно подсчет, если ЕСЛИ ЭЛСЕ обусловлено. –
КОГДА можно делать то же, что и EL ELSE, и является стандартом. –