I'm having trouble with a query and hope someone of the list can help.  I'm
running version 4.0.16.  I'm trying to query against two tables:

mysql> DESCRIBE router;
+-------+---------------------+------+-----+---------+----------------+
| Field | Type                | Null | Key | Default | Extra          |
+-------+---------------------+------+-----+---------+----------------+
| rid   | int(11) unsigned    |      | PRI | NULL    | auto_increment |
| name  | char(120)           |      |     |         |                |
| pop   | char(10)            |      |     |         |                |
| popid | tinyint(3) unsigned |      |     | 0       |                |
+-------+---------------------+------+-----+---------+----------------+
4 rows in set (0.04 sec)

mysql> DESCRIBE interface;
+-------------+---------------------------+------+-----+---------+----------
------+
| Field       | Type                      | Null | Key | Default | Extra
|
+-------------+---------------------------+------+-----+---------+----------
------+
| id          | int(11) unsigned          |      | PRI | NULL    |
auto_increment |
| name        | char(255)                 |      |     |         |
|
| rid         | int(11)                   |      |     | 0       |
|
| speed       | bigint(11)                | YES  |     | NULL    |
|
| description | char(255)                 | YES  |     | NULL    |
|
| status      | enum('active','inactive') | YES  |     | active  |
|
+-------------+---------------------------+------+-----+---------+----------
------+
6 rows in set (0.02 sec)

using the following query:

SELECT router.name AS Router,
    SUM(IF(speed<='64000',1,0)) AS 64K,
    SUM(IF(speed='128000',1,0)) AS 128K,
    SUM(IF(speed='192000',1,0)) AS 192K,
    SUM(IF(speed='256000',1,0)) AS 256K,
    SUM(IF(speed='384000',1,0)) AS 384K,
    SUM(IF(speed='512000',1,0)) AS 512K,
    SUM(IF(speed='768000',1,0)) AS 768K,
    SUM(IF(speed='1024000',1,0)) AS 1M,
    SUM(IF(speed='1152000',1,0)) AS 1152K,
    SUM(IF(speed='1280000',1,0)) AS 1280K,
    SUM(IF(speed='1536000'
        OR speed='1544000',1,0)) AS 'V/T1',
    SUM(IF(speed='3000000',1,0)) AS 3M,
    SUM(IF(speed='6000000',1,0)) AS 6M,
    SUM(IF(speed='9000000',1,0)) AS 9M,
    SUM(IF(speed='10000000',1,0)) AS 10M,
    SUM(IF(speed='12000000',1,0)) AS 12M,
    SUM(IF(speed='24000000',1,0)) AS 24M,
    SUM(IF(speed>'40000000'
        AND speed<'46000000',1,0)) AS 'DS3/T3',
    SUM(IF(speed='100000000',1,0)) AS 100M,
    SUM(IF(speed='155000000',1,0)) AS OC3,
    SUM(IF(speed>'599000000'
        AND speed<'650000000',1,0)) AS OC12,
    SUM(IF(speed='1000000000',1,0)) AS Gigabit,
    SUM(IF(speed='115000',1,0)) AS Dialup,
    SUM(IF(speed>'64000'
        AND speed!='128000'
        AND speed!='192000'
        AND speed!='256000'
        AND speed!='384000'
        AND speed!='512000'
        AND speed!='768000'
        AND speed!='1024000'
        AND speed!='1152000'
        AND speed!='1280000'
        AND speed!='1536000'
        AND speed!='1544000'
        AND speed!='3000000'
        AND speed!='6000000'
        AND speed!='9000000'
        AND speed!='10000000'
        AND speed!='12000000'
        AND speed!='24000000'
        AND speed NOT BETWEEN '40000000' AND '46000000'
        AND speed!='100000000'
        AND speed!='155000000'
        AND speed NOT BETWEEN '599000000' AND '650000000'
        AND speed!='1000000000'
        AND speed!='115000',1,0)) AS Other,
    COUNT(*) AS Total
    FROM router INNER JOIN interface USING (rid)
    GROUP BY router.rid
    ORDER BY router.name;

The query as written runs fine.  My problem is that I want to SELECT only
DISTINCT values for interface.description and not display the descriptions
in the result.

Is this possible?  And if so, how do I do it?

Thanks,

Jack

Jack Coxen
IP Network Engineer
TelCove
712 North Main Street
Coudersport, PA 16915
814-260-2705

Reply via email to