sqlquery and SUM function

Murat Beyhan beyhan at DEPREM.GOV.TR
Mon Aug 13 08:36:27 EDT 2007


Dear Friends,

I would like to draw a casualty distribution map for  various building 
types.

On the srcSQL as you see  I need summation of the casualties of each 
type of buildings(rc,wood,briq,brick,stone,adobe)
So I have used sum function to obtain total number of casualties. But 
when I tried to make legend I have to select classitem so I have used AS 
totald for that reason
then I have used totald as a classitem.
But mapserver returns an error message.

When I select only one item for select query for example select 
d_damage.deadp_wood from d_damage
then If I use deadp_wood as classitem the query works and the map drawn.

For my intend what I have to do?
Regards...
MURAT

script: as follows


LAYER
NAME "Dhuman"
    CONNECTIONTYPE OGR 
    CONNECTION '<OGRVRTDataSource>
    <OGRVRTLayer name="Dhuman">
<SrcDataSource>MYSQL:turkey,user=root,password=mysql_123,host=localhost,port=3306,tables=d_damage 
m_village1</SrcDataSource>
        <SrcSQL>SELECT m_village1.latitude,m_village1.longitude, 
*sum(d_damage.deadp_rc + d_damage.deadp_wood + d_damage.deadp_briq + 
d_damage.deadp_brick + d_damage.deadp_stone + d_damage.deadp_adobe) as 
totald *from d_damage, m_village1 where d_damage.eq_id like "%eq_id%" 
and d_damage.region_id=m_village1.dist_id and m_village1.name not like 
"%(%"</SrcSQL>
        <GeometryType>wkbPoint</GeometryType>
        <GeometryField encoding="PointFromColumns" x="longitude" 
y="latitude"/>
    </OGRVRTLayer>
</OGRVRTDataSource>'
   TYPE POINT
    DATA Dhuman
    STATUS default
            CLASSITEM "totald"
   
  CLASS
    NAME "HUMAN DAMAGE"
    EXPRESSION ([totald] < 0)
#    COLOR 255 0 255
#    SYMBOL "cpoint"
#    SIZE 12
  END
 
 
 
    CLASS
    NAME "1-10"
    EXPRESSION ([totald] GE 1.0 AND [totald] LT 10.0)
   SYMBOL "cpoint"
   SIZE 5
    COLOR 255 250 250
  END
 
    CLASS
    NAME "11-50"
    EXPRESSION ([totald] GE 11.0 AND [totald] LT 50.0)
   SYMBOL "cpoint"
   SIZE 5
    COLOR 248 248 255
  END
 
  CLASS
    NAME "51-100"
    EXPRESSION ([totald] GE 51.0 AND [totald] LT 100.0)
   SYMBOL "cpoint"
   SIZE 5
    COLOR 255 250 240
  END
  CLASS
    NAME "101-200"
    EXPRESSION ([totald] GE 101.0 AND [totald] LT 200.0)
   SYMBOL "cpoint"
   SIZE 5
    COLOR 102 255 204
  END
  CLASS
    NAME "201-400"
  EXPRESSION ([totald] GE 201.0 AND [totald] LT 400.0)
    SYMBOL "cpoint"
    SIZE 5
    COLOR 102 53 0
  END
  CLASS
    NAME "400<"
     EXPRESSION ([totald] GT 400.0)
    SYMBOL "cpoint"
    SIZE 5
    COLOR 102 153 255
  END
 END



the error message as follows:

msDrawMap(): Image handling error. Failed to draw layer named 'Dhuman'.
msOGRFileOpen(): OGR error. Open failed for OGR connection ` 
MYSQL:turkey,user=root,password=mysql_123,host=localhost,port=3306,tables=d_damage 
m_village1 SELECT m_village1.latitude,m_village1.longitude, 
sum(d_damage.deadp_rc+ d_damage.deadp_wood +d_damage.deadp_briq + 
d_damage.deadp_brick + d_damage.deadp_stone + d_damage.deadp_adobe) as 
totald from d_damage, m_village1 where d_damage.eq_id like 
"200006060242-auto-000" and d_damage.region_id=m_village1.dist_id and 
m_village1.name not like "%(%" wkbPoint '. SQL statement failed, or 
returned no layer result: SELECT 
m_village1.latitude,m_village1.longitude, sum(d_damage.deadp_rc+ 
d_damage.deadp_wood +d_damage.deadp_briq + d_damage.deadp_brick + 
d_damage.deadp_stone + d_damage.deadp_adobe) as totald from d_damage, 
m_village1 where d_damage.eq_id like "200006060242-auto-000" and 
d_damage.region_id=m_village1.dist_id and m_village1.name not like "%(%"

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



More information about the mapserver-users mailing list