我想你可以使用這樣的事情:
SELECT xid , CATEGORY, SUBCAT, minp, maxp
, CASE WHEN COALESCE(minp,0)<=1000 OR COALESCE(maxp,0)<=1000 THEN 1 ELSE 0 END AS CAT1
, CASE WHEN (COALESCE(minp,0)>1000 AND COALESCE(minp,0)<=1500) OR (COALESCE(maxp,0)>1000 AND COALESCE(maxp,0)<=1500) THEN 1 ELSE 0 END AS CAT2
, CASE WHEN COALESCE(minp,0)>1500 OR COALESCE(maxp,0)>1500 THEN 1 ELSE 0 END AS CAT3
from Table1 A
INNER JOIN Table2 B ON A.xid=B.Yid
;
輸出:
xid CATEGORY SUBCAT minp maxp CAT1 CAT2 CAT3
1 Venue Resort 800 1000 1 0 0
2 Venue Resort 900 1200 1 1 0
3 Venue Resort NULL 1100 1 1 0
4 Venue Resort 1300 1600 0 1 1
5 Venue Resort NULL 1800 1 0 1
6 Venue Resort 800 2000 1 0 1
7 Venue BanquetH 800 1000 1 0 0
8 Venue Resort 1500 2100 0 1 1
9 Apparel Designer 15000 60000 0 0 1
T o增加數量爲每個類別,你可以使用:
SELECT *
FROM
(SELECT xid , CATEGORY, SUBCAT, minp, maxp
, CASE WHEN COALESCE(minp,0)<=1000 OR COALESCE(maxp,0)<=1000 THEN 1 ELSE 0 END AS CAT1
, CASE WHEN (COALESCE(minp,0)>1000 AND COALESCE(minp,0)<=1500) OR (COALESCE(maxp,0)>1000 AND COALESCE(maxp,0)<=1500) THEN 1 ELSE 0 END AS CAT2
, CASE WHEN COALESCE(minp,0)>1500 OR COALESCE(maxp,0)>1500 THEN 1 ELSE 0 END AS CAT3
from Table1 A
INNER JOIN Table2 B ON A.xid=B.Yid) X
CROSS JOIN (SELECT SUM(CASE WHEN CAT1=1 THEN 1 ELSE 0 END) AS CAT1_RC
,SUM(CASE WHEN CAT2=1 THEN 1 ELSE 0 END) AS CAT2_RC
, SUM(CASE WHEN CAT3=1 THEN 1 ELSE 0 END) AS CAT3_RC
FROM (SELECT xid , CATEGORY, SUBCAT, minp, maxp
, CASE WHEN COALESCE(minp,0)<=1000 OR COALESCE(maxp,0)<=1000 THEN 1 ELSE 0 END AS CAT1
, CASE WHEN (COALESCE(minp,0)>1000 AND COALESCE(minp,0)<=1500) OR (COALESCE(maxp,0)>1000 AND COALESCE(maxp,0)<=1500) THEN 1 ELSE 0 END AS CAT2
, CASE WHEN COALESCE(minp,0)>1500 OR COALESCE(maxp,0)>1500 THEN 1 ELSE 0 END AS CAT3
from Table1 A
INNER JOIN Table2 B ON A.xid=B.Yid) X1
) Y
;
輸出:
+-----+----------+-----------+-------+-------+------+------+------+---------+---------+---------+
| xid | CATEGORY | SUBCAT | minp | maxp | CAT1 | CAT2 | CAT3 | CAT1_RC | CAT2_RC | CAT3_RC |
+-----+----------+-----------+-------+-------+------+------+------+---------+---------+---------+
| 1 | Venue | Resort | 800 | 1000 | 1 | 0 | 0 | 6 | 4 | 5 |
| 2 | Venue | Resort | 900 | 1200 | 1 | 1 | 0 | 6 | 4 | 5 |
| 3 | Venue | Resort | NULL | 1100 | 1 | 1 | 0 | 6 | 4 | 5 |
| 4 | Venue | Resort | 1300 | 1600 | 0 | 1 | 1 | 6 | 4 | 5 |
| 5 | Venue | Resort | NULL | 1800 | 1 | 0 | 1 | 6 | 4 | 5 |
| 6 | Venue | Resort | 800 | 2000 | 1 | 0 | 1 | 6 | 4 | 5 |
| 7 | Venue | Banquet H | 800 | 1000 | 1 | 0 | 0 | 6 | 4 | 5 |
| 8 | Venue | Resort | 1500 | 2100 | 0 | 1 | 1 | 6 | 4 | 5 |
| 9 | Apparel | Designer | 15000 | 60000 | 0 | 0 | 1 | 6 | 4 | 5 |
+-----+----------+-----------+-------+-------+------+------+------+---------+---------+---------+
其分貝?MySQL或MSSQL(SQL服務器) ? – etsa
它的mysql數據庫 – Ashish