Ma requête:Valeurs SQL GROUP BY et NULL: comment regrouper mes résultats uniquement par des valeurs non nulles?
SELECT *,
contacts.createdAt AS contactcreatedAt,
contacts.updatedAt AS contactupdatedAt,
bidresponses.itemid AS bidresponseitemid,
bidresponses.personid AS bidresponsepersonid,
SUM(tagsitems.quantity) AS totalquantity
FROM items
LEFT OUTER JOIN tagsitems ON items.id = tagsitems.itemid
LEFT OUTER JOIN itemscontacts ON items.id = itemscontacts.itemid
LEFT OUTER JOIN contacts ON itemscontacts.contactid = contacts.id
LEFT OUTER JOIN bidresponses ON items.id = bidresponses.itemid AND itemscontacts.personid = bidresponses.personid
LEFT OUTER JOIN bidtemplatefields ON bidresponses.bidtemplatefieldid = bidtemplatefields.id
WHERE ((items.id = 70687 OR items.id = 70595) AND itemscontacts.relationship = 's') AND (items.deletedAt IS NULL)
GROUP BY items.id, tagsitems.itemid, bidresponses.personid, bidresponses.bidtemplatefieldid
ORDER BY items.id ASC
Sans les SOMME() et GROUP BY clauses de cette requête renvoie les résultats souhaités, moins la valeur importante TotalQuantity.
La tâche qui m'a bloqué pour le moment est la construction de la clause GROUP BY afin qu'elle "ignore" les valeurs NULL ou manquantes des réponses aux enchères. Les données sont telles que les résultats seront un ensemble mixte d'éléments - certains ont des entrées dans la table de réponses aux réponses et d'autres non.
EDIT: Je souhaite que les entrées avec des valeurs NULL dans la table de réponses aux demandes s'affichent. Avec la clause GROUP BY actuelle, ils ne le sont pas. Je devrais noter que la seule raison pour laquelle j'utilise le regroupement est que je peux obtenir la valeur de quantité totale. Voici un exemple de la sortie de requête sans SUM() et les clauses GROUP BY:
+-------+------------+------+---------------------------+------+------------+-----------+-----------+---------------------+---------------------+-----------+----------+-------+--------+----------+--------+-----------+----------+---------------------+--------------+---------------+--------------+-----------+------------+------+-----------+----------+----------------+-----------------+---------------------+---------------------+-----------+----------+---------------------+---------------------+--------------------+--------+-------------+----------+------+------------------+-------------+---------------------+---------------------+-------------------+---------------------+
| id | itemtypeid | code | description | cost | unittypeid | projectid | companyid | createdAt | updatedAt | deletedAt | unittype | tagid | itemid | quantity | itemid | contactid | personid | sentdate | responsedate | bidtemplateid | relationship | awarddate | assigndate | id | companyid | personid | companyidOwner | parentContactid | createdAt | updatedAt | firstName | lastName | company | email | bidtemplatefieldid | itemid | bidresponse | personid | id | bidtemplatefield | fieldtypeid | contactcreatedAt | contactupdatedAt | bidresponseitemid | bidresponsepersonid |
+-------+------------+------+---------------------------+------+------------+-----------+-----------+---------------------+---------------------+-----------+----------+-------+--------+----------+--------+-----------+----------+---------------------+--------------+---------------+--------------+-----------+------------+------+-----------+----------+----------------+-----------------+---------------------+---------------------+-----------+----------+---------------------+---------------------+--------------------+--------+-------------+----------+------+------------------+-------------+---------------------+---------------------+-------------------+---------------------+
| 70595 | 1 | NULL | HD Banners | NULL | NULL | 7 | 1 | 2010-05-10 17:00:11 | 2010-08-14 18:57:41 | NULL | each | NULL | NULL | NULL | 70595 | 16 | 34789 | 2010-08-14 22:37:01 | NULL | 1 | s | NULL | NULL | 16 | NULL | NULL | 1 | NULL | 2010-08-05 18:40:01 | 2010-08-05 18:41:40 | NULL | NULL | sdf | [email protected] | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 2010-08-05 18:40:01 | 2010-08-05 18:41:40 | NULL | NULL |
| 70595 | 1 | NULL | HD Banners | NULL | NULL | 7 | 1 | 2010-05-10 17:00:11 | 2010-08-14 18:57:41 | NULL | each | NULL | NULL | NULL | 70595 | 22 | 34794 | 2010-08-14 18:44:02 | NULL | 1 | s | NULL | NULL | 22 | NULL | 34794 | 1 | NULL | 2010-08-09 19:56:28 | 2010-08-10 13:55:03 | NULL | NULL | anewwwww | [email protected] | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 2010-08-09 19:56:28 | 2010-08-10 13:55:03 | NULL | NULL |
| 70595 | 1 | NULL | HD Banners | NULL | NULL | 7 | 1 | 2010-05-10 17:00:11 | 2010-08-14 18:57:41 | NULL | each | NULL | NULL | NULL | 70595 | 27 | 34797 | 2010-08-14 22:36:59 | NULL | 1 | s | NULL | NULL | 27 | NULL | NULL | 1 | NULL | 2010-08-10 19:11:52 | NULL | NULL | NULL | [email protected] | [email protected] | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 2010-08-10 19:11:52 | NULL | NULL | NULL |
| 70595 | 1 | NULL | HD Banners | NULL | NULL | 7 | 1 | 2010-05-10 17:00:11 | 2010-08-14 18:57:41 | NULL | each | NULL | NULL | NULL | 70595 | 28 | 34798 | 2010-08-14 22:37:00 | NULL | 1 | s | NULL | NULL | 28 | NULL | NULL | 1 | NULL | 2010-08-10 19:18:27 | NULL | NULL | NULL | [email protected] | [email protected] | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 2010-08-10 19:18:27 | NULL | NULL | NULL |
| 70687 | 1 | NULL | Editing and adding labels | NULL | NULL | 7 | 1 | 2010-05-15 07:26:33 | 2010-08-14 18:55:48 | NULL | each | 12 | 70687 | NULL | 70687 | 16 | 34789 | 2010-08-14 22:37:01 | NULL | 1 | s | NULL | NULL | 16 | NULL | NULL | 1 | NULL | 2010-08-05 18:40:01 | 2010-08-05 18:41:40 | NULL | NULL | sdf | [email protected] | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 2010-08-05 18:40:01 | 2010-08-05 18:41:40 | NULL | NULL |
| 70687 | 1 | NULL | Editing and adding labels | NULL | NULL | 7 | 1 | 2010-05-15 07:26:33 | 2010-08-14 18:55:48 | NULL | each | 2 | 70687 | NULL | 70687 | 16 | 34789 | 2010-08-14 22:37:01 | NULL | 1 | s | NULL | NULL | 16 | NULL | NULL | 1 | NULL | 2010-08-05 18:40:01 | 2010-08-05 18:41:40 | NULL | NULL | sdf | [email protected] | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 2010-08-05 18:40:01 | 2010-08-05 18:41:40 | NULL | NULL |
| 70687 | 1 | NULL | Editing and adding labels | NULL | NULL | 7 | 1 | 2010-05-15 07:26:33 | 2010-08-14 18:55:48 | NULL | each | 12 | 70687 | NULL | 70687 | 27 | 34797 | 2010-08-14 22:36:59 | NULL | 1 | s | NULL | NULL | 27 | NULL | NULL | 1 | NULL | 2010-08-10 19:11:52 | NULL | NULL | NULL | [email protected] | [email protected] | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 2010-08-10 19:11:52 | NULL | NULL | NULL |
| 70687 | 1 | NULL | Editing and adding labels | NULL | NULL | 7 | 1 | 2010-05-15 07:26:33 | 2010-08-14 18:55:48 | NULL | each | 2 | 70687 | NULL | 70687 | 27 | 34797 | 2010-08-14 22:36:59 | NULL | 1 | s | NULL | NULL | 27 | NULL | NULL | 1 | NULL | 2010-08-10 19:11:52 | NULL | NULL | NULL | [email protected] | [email protected] | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 2010-08-10 19:11:52 | NULL | NULL | NULL |
| 70687 | 1 | NULL | Editing and adding labels | NULL | NULL | 7 | 1 | 2010-05-15 07:26:33 | 2010-08-14 18:55:48 | NULL | each | 12 | 70687 | NULL | 70687 | 28 | 34798 | 2010-08-14 22:37:00 | NULL | 1 | s | NULL | NULL | 28 | NULL | NULL | 1 | NULL | 2010-08-10 19:18:27 | NULL | NULL | NULL | [email protected] | [email protected] | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 2010-08-10 19:18:27 | NULL | NULL | NULL |
| 70687 | 1 | NULL | Editing and adding labels | NULL | NULL | 7 | 1 | 2010-05-15 07:26:33 | 2010-08-14 18:55:48 | NULL | each | 2 | 70687 | NULL | 70687 | 28 | 34798 | 2010-08-14 22:37:00 | NULL | 1 | s | NULL | NULL | 28 | NULL | NULL | 1 | NULL | 2010-08-10 19:18:27 | NULL | NULL | NULL | [email protected] | [email protected] | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 2010-08-10 19:18:27 | NULL | NULL | NULL |
+-------+------------+------+---------------------------+------+------------+-----------+-----------+---------------------+---------------------+-----------+----------+-------+--------+----------+--------+-----------+----------+---------------------+--------------+---------------+--------------+-----------+------------+------+-----------+----------+----------------+-----------------+---------------------+---------------------+-----------+----------+---------------------+---------------------+--------------------+--------+-------------+----------+------+------------------+-------------+---------------------+---------------------+-------------------+---------------------+
Voici un exemple de la sortie de la requête avec SUM() et les clauses GROUP BY:
+-------+------------+------+---------------------------+------+------------+-----------+-----------+---------------------+---------------------+-----------+----------+-------+--------+----------+--------+-----------+----------+---------------------+--------------+---------------+--------------+-----------+------------+------+-----------+----------+----------------+-----------------+---------------------+---------------------+-----------+----------+---------+----------------+--------------------+--------+-------------+----------+------+------------------+-------------+---------------------+---------------------+-------------------+---------------------+---------------+
| id | itemtypeid | code | description | cost | unittypeid | projectid | companyid | createdAt | updatedAt | deletedAt | unittype | tagid | itemid | quantity | itemid | contactid | personid | sentdate | responsedate | bidtemplateid | relationship | awarddate | assigndate | id | companyid | personid | companyidOwner | parentContactid | createdAt | updatedAt | firstName | lastName | company | email | bidtemplatefieldid | itemid | bidresponse | personid | id | bidtemplatefield | fieldtypeid | contactcreatedAt | contactupdatedAt | bidresponseitemid | bidresponsepersonid | totalquantity |
+-------+------------+------+---------------------------+------+------------+-----------+-----------+---------------------+---------------------+-----------+----------+-------+--------+----------+--------+-----------+----------+---------------------+--------------+---------------+--------------+-----------+------------+------+-----------+----------+----------------+-----------------+---------------------+---------------------+-----------+----------+---------+----------------+--------------------+--------+-------------+----------+------+------------------+-------------+---------------------+---------------------+-------------------+---------------------+---------------+
| 70595 | 1 | NULL | HD Banners | NULL | NULL | 7 | 1 | 2010-05-10 17:00:11 | 2010-08-14 18:57:41 | NULL | each | NULL | NULL | NULL | 70595 | 16 | 34789 | 2010-08-14 22:37:01 | NULL | 1 | s | NULL | NULL | 16 | NULL | NULL | 1 | NULL | 2010-08-05 18:40:01 | 2010-08-05 18:41:40 | NULL | NULL | sdf | [email protected] | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 2010-08-05 18:40:01 | 2010-08-05 18:41:40 | NULL | NULL | NULL |
| 70687 | 1 | NULL | Editing and adding labels | NULL | NULL | 7 | 1 | 2010-05-15 07:26:33 | 2010-08-14 18:55:48 | NULL | each | 12 | 70687 | NULL | 70687 | 16 | 34789 | 2010-08-14 22:37:01 | NULL | 1 | s | NULL | NULL | 16 | NULL | NULL | 1 | NULL | 2010-08-05 18:40:01 | 2010-08-05 18:41:40 | NULL | NULL | sdf | [email protected] | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 2010-08-05 18:40:01 | 2010-08-05 18:41:40 | NULL | NULL | NULL |
+-------+------------+------+---------------------------+------+------------+-----------+-----------+---------------------+---------------------+-----------+----------+-------+--------+----------+--------+-----------+----------+---------------------+--------------+---------------+--------------+-----------+------------+------+-----------+----------+----------------+-----------------+---------------------+---------------------+-----------+----------+---------+----------------+--------------------+--------+-------------+----------+------+------------------+-------------+---------------------+---------------------+-------------------+---------------------+---------------+
Je ne suis pas sûr si je vous comprends complètement. Vous voulez que les lignes de résultat avec la valeur NULL dans les colonnes 'bidresponseitemid' et' bidresponsepersonid' ne s'affichent pas? Ou ils ne se présentent pas et vous le voulez? Peut-être inclure un exemple de jeu de résultats (vous pouvez obtenir de beaux textes en utilisant la commande mysql dans une console/un terminal) et décrire ce que vous voulez avoir différemment. "WHERE' bidresponsepersonid' N'EST PAS NUL "pourrait être quelque chose que vous cherchez. – Thomas
merci thomas. Je vais clarifier ci-dessus. –