Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

nối một hàng với tất cả các hàng và trả lại tất cả các hàng

Sử dụng CROSS JOIN:-

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

Nếu bạn có một bảng ngày tháng thì bạn chỉ có thể sử dụng nó thay vì truy vấn phụ để lấy ngày tháng (điều này cũng tránh được vấn đề tiềm ẩn là không có ngày trong kết quả trong một tháng mà không có doanh số bán hàng cho bất kỳ cửa hàng nào) .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. câu lệnh chuẩn bị giả lập so với câu lệnh chuẩn bị thực

  2. Thực thể Ado:Coi Tiny là Boolean =false

  3. EntityFramework 6.1.3 và MySQL DbFunctions.TruncateTime không tồn tại?

  4. # 1054 cột không xác định trong lỗi mệnh đề

  5. Lỗi cài đặt Sphinx 2.0.4 với MAMP 2.0:Không thể tìm thấy tiêu đề MySQL