sql >> Database >  >> RDS >> Mysql

voeg een rij toe aan alle rijen en retourneer alle rijen

Een CROSS JOIN gebruiken:-

SELECT
    o.id_outlet,
    s_main.periode,
    o.branch, 
    count(msisdn)
FROM
(
    SELECT DISTINCT SUBSTRING(date,1,7) AS periode
    FROM sales
) s_main 
CROSS JOIN outlet o
LEFT OUTER JOIN sales s
ON s_main.periode = SUBSTRING(s.date,1,7)
AND o.id_outlet = s.id_outlet
WHERE (o.STATUS LIKE 'STREET%')
GROUP BY s_main.periode, o.branch, o.id_outlet

Als je een tabel met datums hebt, kun je die gewoon gebruiken in plaats van de subquery om de datums te krijgen (wat ook het potentiële probleem vermijdt van het niet hebben van een datum in de resultaten voor een maand waarin er geen verkoop is geweest voor een verkooppunt) .



  1. Postgres accent ongevoelig LIKE zoeken in Rails 3.1 op Heroku

  2. Ik heb per ongeluk root buitengesloten op MySQL

  3. Waarom zie ik dat COLLATIE 'xxx' niet geldig is voor KARAKTERSET 'yyy'

  4. datetime2 vs datetimeoffset in SQL Server:wat is het verschil?