Mysql 如何在不同列中组合具有不同值的两行

Mysql 如何在不同列中组合具有不同值的两行,mysql,sql,Mysql,Sql,我想将两行日期相同但值不同的行组合在一起​​在不同的列中。像这样: tgl qty_NEW MIO M3 125 CW-OTR qty_NEW-SOUL-GT-125-OTR ---------- ------------------------- ------------------------- 2016-05-01 0 0 2016-05-02 0

我想将两行日期相同但值不同的行组合在一起​​在不同的列中。像这样:

tgl         qty_NEW MIO M3 125 CW-OTR  qty_NEW-SOUL-GT-125-OTR  
----------  -------------------------  -------------------------
2016-05-01  0                          0                        
2016-05-02  0                          0                        
2016-05-05  0                          0                        
2016-05-09  0                          0                        
2016-05-10  2                          0                        
2016-05-10  0                          1                
tgl         qty_NEW MIO M3 125 CW-OTR  qty_NEW-SOUL-GT-125-OTR  
----------  -------------------------  -------------------------
2016-05-01  0                          0                        
2016-05-02  0                          0                        
2016-05-05  0                          0                        
2016-05-09  0                          0                        
2016-05-10  2                          1                        
SELECT DISTINCT DATE(m.tgl_fj) AS tgl , 
CASE brg.nama_brg WHEN 'NEW MIO M3 125 CW-OTR' THEN SUM(d.qty) ELSE '0' END AS 'qty_NEW MIO M3 125 CW-OTR' , 
CASE brg.nama_brg WHEN 'NEW-SOUL-GT-125-OTR' THEN SUM(d.qty) ELSE '0' END AS 'qty_NEW-SOUL-GT-125-OTR' 
FROM tb_mt_fj m
LEFT OUTER JOIN tb_dt_fj_brg d
ON m.ucode_fj=d.ucode_fj
LEFT OUTER JOIN tb_m_brg brg
ON d.ucode_brg=brg.ucode_brg
LEFT OUTER JOIN tb_m_grp_brg grp
ON brg.ucode_grp_brg=grp.ucode_grp_brg
WHERE brg.ucode_grp_brg='11040000000089' AND MONTH(m.tgl_fj)=MONTH(NOW())
GROUP BY DATE(m.tgl_fj), brg.nama_brg
ORDER BY DATE(m.tgl_fj)
2016-05-10中的数值相同​​分别是2-0和0-1

我想要的是这样的:

tgl         qty_NEW MIO M3 125 CW-OTR  qty_NEW-SOUL-GT-125-OTR  
----------  -------------------------  -------------------------
2016-05-01  0                          0                        
2016-05-02  0                          0                        
2016-05-05  0                          0                        
2016-05-09  0                          0                        
2016-05-10  2                          0                        
2016-05-10  0                          1                
tgl         qty_NEW MIO M3 125 CW-OTR  qty_NEW-SOUL-GT-125-OTR  
----------  -------------------------  -------------------------
2016-05-01  0                          0                        
2016-05-02  0                          0                        
2016-05-05  0                          0                        
2016-05-09  0                          0                        
2016-05-10  2                          1                        
SELECT DISTINCT DATE(m.tgl_fj) AS tgl , 
CASE brg.nama_brg WHEN 'NEW MIO M3 125 CW-OTR' THEN SUM(d.qty) ELSE '0' END AS 'qty_NEW MIO M3 125 CW-OTR' , 
CASE brg.nama_brg WHEN 'NEW-SOUL-GT-125-OTR' THEN SUM(d.qty) ELSE '0' END AS 'qty_NEW-SOUL-GT-125-OTR' 
FROM tb_mt_fj m
LEFT OUTER JOIN tb_dt_fj_brg d
ON m.ucode_fj=d.ucode_fj
LEFT OUTER JOIN tb_m_brg brg
ON d.ucode_brg=brg.ucode_brg
LEFT OUTER JOIN tb_m_grp_brg grp
ON brg.ucode_grp_brg=grp.ucode_grp_brg
WHERE brg.ucode_grp_brg='11040000000089' AND MONTH(m.tgl_fj)=MONTH(NOW())
GROUP BY DATE(m.tgl_fj), brg.nama_brg
ORDER BY DATE(m.tgl_fj)
我使用的查询如下:

tgl         qty_NEW MIO M3 125 CW-OTR  qty_NEW-SOUL-GT-125-OTR  
----------  -------------------------  -------------------------
2016-05-01  0                          0                        
2016-05-02  0                          0                        
2016-05-05  0                          0                        
2016-05-09  0                          0                        
2016-05-10  2                          0                        
2016-05-10  0                          1                
tgl         qty_NEW MIO M3 125 CW-OTR  qty_NEW-SOUL-GT-125-OTR  
----------  -------------------------  -------------------------
2016-05-01  0                          0                        
2016-05-02  0                          0                        
2016-05-05  0                          0                        
2016-05-09  0                          0                        
2016-05-10  2                          1                        
SELECT DISTINCT DATE(m.tgl_fj) AS tgl , 
CASE brg.nama_brg WHEN 'NEW MIO M3 125 CW-OTR' THEN SUM(d.qty) ELSE '0' END AS 'qty_NEW MIO M3 125 CW-OTR' , 
CASE brg.nama_brg WHEN 'NEW-SOUL-GT-125-OTR' THEN SUM(d.qty) ELSE '0' END AS 'qty_NEW-SOUL-GT-125-OTR' 
FROM tb_mt_fj m
LEFT OUTER JOIN tb_dt_fj_brg d
ON m.ucode_fj=d.ucode_fj
LEFT OUTER JOIN tb_m_brg brg
ON d.ucode_brg=brg.ucode_brg
LEFT OUTER JOIN tb_m_grp_brg grp
ON brg.ucode_grp_brg=grp.ucode_grp_brg
WHERE brg.ucode_grp_brg='11040000000089' AND MONTH(m.tgl_fj)=MONTH(NOW())
GROUP BY DATE(m.tgl_fj), brg.nama_brg
ORDER BY DATE(m.tgl_fj)

那么,如何使查询结果与我想要的相同呢?

这个查询应该可以做到这一点

select tgl, sum(qty_NEW MIO M3 125 CW-OTR) as `left`, sum(qty_NEW-SOUL-GT-125-OTR) as `right` from `table` group by tgl

在组合的情况下,是否只有一个非零值?如果将
2106-05-10
分为
2-0
0-1
2-3
三行,该怎么办?那么您希望在输出中得到什么?@Utsav如果有3行,则有3个值
2-0-0
0-1-0
0-0-3
,输出为
2-1-3