J'ai besoin de compter le nombre de résultats pour la pagination.Mysql compte avec des requêtes internes imbriquées en condition IF
Demo Recherche
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
Requête comte que je me sers
Select count(A.order_id) from order A, size B, production E ........... where ....... and assign_date > 2013-08-01
je dois ajouter que si la condition que je puisse compter les résultats correctement
version plus longue
J'ai vérifié la question s posté sur SO, et ne pouvait pas trouver la réponse. Je travaille sur une page où je montre la pagination.
Pour la pagination, j'ai utilisé le compte, qui fonctionne. La requête de compte n'a pas cette condition.
Pour une requête réelle, je souhaite que je puisse poster toute ma requête ici, mais il est plus de 200 lignes si bien triés.
Pour la pagination, j'utilise la requête suivante.
$strQuery = "SELECT COUNT(DISTINCT(A.order_id)) AS totalRecs FROM $tbls WHERE $whereClause $WhereExt";
Le $tbls
et $whereClause
sont très longs.
Dans orders
tableau I m ayant assing_on
champ de date, ce qui montre qu'un ordre est attribué à quelqu'un pour la production. J'ai créé la page de liste de résultats à partir des données, et en PHP ajouté vérifier que si la date assign_on
est vide/null. Si c'est le cas, je cours une autre requête pour obtenir la date de début estimée de la production.
La date de début prévue de la production obtient une date de nombre de calculs et paramètres
- date de livraison Orders.estimated (ce paramètre est réglé lors de la publication de l'ordre)
- mustReadyDate = date estimée - tampon d'expédition (une autre table) - séjours fournisseur (3 autres tables) - week-end de fournisseur (2 autres tableaux)
- totalDaysRequired pour la production = longueur totale de l'ordre/taux de tissage standard par jour (une autre table)
- muststartdate = mustReadyDate - totalDa ysRequired;
plus de quatre points sont tous dans la requête, aucun travail de PHP implique
requête est la récupération de données ayant cette condition et compter requête est de ne pas avoir cette condition pour le moment.
IF(
E.assign_date IS NOT NULL AND E.assign_date != '$mysqlEmptyDate',
DATE_FORMAT(E.assign_date , '" . reporting_DateFormat . "'),
($mustLoomStartDateQry_fm)
) AS assign_date,
je besoin d'ajouter une condition supplémentaire dans la clause WHERE de la requête de comptage pour vérifier si aasign_date > one week from today
je veux juste savoir comment je peux ajouter une telle requête longue en partie de comptage donc j'exécuter que sur requête.
** EDIT **
Si quelqu'un est intéressé à observer la pleine requête http://pastebin.com/zqzbpEei mais s'il vous plaît je vous offre ce que pour vous donner un aperçu de la ...
Pourquoi ne pas utiliser QUAND? –
'Quand 'où? J'ai besoin de compter avec IF ELSE conditionné. –
QUAND peut faire la même chose que IF ELSE et est la norme. –