2015-04-23 67 views
-1

我有類似的服務表:MySQL查詢,由年級組再由標籤

invoice number 
servicename 
amount 
price 
tag (consultingfee, education fee, travel expense etc..) 
date 

我想提出一個查詢,按年組,然後通過標籤組。

我希望得到的結果類似以下內容:

Year ------------ Tag -------------- Tag --------------- etc .... 
2015 ----------- Consulting fee -- Education fee --- etc.. 
2014 ----------- Consulting fee -- Education fee --- etc.. 

我希望你得到我想要的東西。

更新了Mysql架構

CREATE TABLE IF NOT EXISTS `serv` (
    `Id` int(25) NOT NULL auto_increment, 
    `Invoicenumber` varchar(25) NOT NULL default '', 
    `service` text NOT NULL, 
    `amount` varchar(25) NOT NULL default '', 
    `price` varchar(25) NOT NULL default '', 
    `Done` varchar(25) NOT NULL default 'false', 
    `rabattchoice` varchar(10) NOT NULL default 'false', 
    `support` varchar(11) NOT NULL default 'false', 
    `DateServ` date default NULL, 
    `ServTag` varchar(20) NOT NULL default 'false', 
    PRIMARY KEY (`Id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3946 ; 

數據

INSERT INTO `serv` 
(`Id`, `Invoicenumber`, `service`, `ammount`, `price`, `Done`, `rabattchoice`, `support`, `DateServ`, `ServTag`) VALUES 
(113, '31991', 'Kursavgift -> name', '1', '8250', 'true', 'false', 'false', '2005-09-12', 'EXTERN'), 
(114, '31992', 'Kursavgift -> Name', '1', '8250', 'true', 'false', 'false', '2005-09-12', 'EXTERN'); 

謝謝你們的幫助。我通過對每個標籤進行查詢來解決這個問題,然後我將數據放在多個表中,並留下了浮點數。但是這造成了另一個問題!驚喜!

+0

也許就是你想要的(Group Concat):https://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat –

+0

你能否提供一塊數據(樣本),上面提到的表格包含 – Serge

+0

繼續。嘗試一下。 – Strawberry

回答

0
SELECT * FROM tableName GROUP BY YEAR(date), tag; 

我希望這能幫助你!

0

我會在今年先用一個子查詢來,那我就按標籤和使用GROUP_CONCAT()具有明確收集所有獨特的標籤在一列:

 
SELECT t.year, GROUP_CONCAT(DISTINCT t.tag) 

FROM (
    SELECT * FROM Table AS t 

    GROUP BY t.year 
) AS t 

GROUP BY t.tag