2013-08-16 35 views
0

我有這個包含一系列收據號碼的freight.or_nos表。我想列出所有或正在發佈的排除狀態=「已取消」,從而使該系列分組進行分組。 比如我有這樣的收據刺125001-125050,以及125020被取消,因此上市的結果將是:如何在MySQL中查詢和分組每個連續號碼系列?

+-------------------------------------------------------+ 
| OR Start | OR End | Quantity | Amount | 
+-------------------------------------------------------+ 
| 125001  | 125019  |   19 |   | 
+-------------------------------------------------------+ 
| 125021  | 125050  |   30 |   | 
+-------------------------------------------------------+ 

這似乎是一個艱難的查詢。

+0

IM在您需要什麼,但是,我的理解,你可以聲明之間使用的基礎不知道 – zxc

回答

0

感謝您的閱讀,但我已經做到了,只是現在! :) 這裏是我的查詢(不考慮其他字符是形成我們的CGI):

{.while SELECT `start`,`end`,or_prefix,or_suffix,SUM(a.amount) AS g_total,COUNT(*) AS qcount FROM (SELECT l.id AS `start`,(SELECT MIN(a.id) AS id FROM (SELECT a.or_no AS id FROM freight.`or_nos` a WHERE a.status!='Cancelled' AND a.log_user = [email protected]_teller AND DATE(a.or_date)='@user_date`DATE' AND IF(a.status='Default' AND a.amount=0,0,1) ) AS a LEFT OUTER JOIN (SELECT a.or_no AS id FROM freight.`or_nos` a WHERE a.status!='Cancelled' AND a.log_user = [email protected]_teller AND DATE(a.or_date)='@user_date`DATE' AND IF(a.status='Default' AND a.amount=0,0,1) ) AS b ON a.id = b.id - 1 WHERE b.id IS NULL AND a.id >= l.id) AS `end` FROM (SELECT a.or_no AS id FROM freight.`or_nos` a WHERE a.status!='Cancelled' AND a.log_user = [email protected]_teller AND DATE(a.or_date)='@user_date`DATE' AND IF(a.status='Default' AND a.amount=0,0,1) ) AS l LEFT OUTER JOIN (SELECT a.or_no AS id FROM freight.`or_nos` a WHERE a.log_user = [email protected]_teller AND DATE(a.or_date)='@user_date`DATE' AND IF(a.status='Default' AND a.amount=0,0,1) ) AS r ON r.id = l.id - 1 WHERE r.id IS NULL) AS k LEFT JOIN freight.`or_nos` a ON a.`or_no` BETWEEN k.start AND k.end AND DATE(a.`or_date`)='@user_date`DATE' AND a.log_user [email protected]_teller AND IF(a.status='Default' AND a.amount=0,0,1) AND a.status!='Cancelled' GROUP BY `start`} 
      {.start}{.x.24.12:end}{.x`p0.40.-5:qcount}{.x`p2.57.-15:g_total}{.asc 255} 
{.wend}{.asc 255} 
相關問題