3

I want to do a multiple value selection in this query with an parameter input. The parameter Regiao_Estado gets a value like the example: [AC, DF] put in the line from the script:

lyr.definitionQuery = 'UF IN' '('Regiao_Estado')'

the whole code is here. The parameter Tabela1 only exists to get the value for the field Ano. The script will do a query to select values and after that get the sum of the field. For one value it`s ok, But I want for multiple values and maybe multiple fields selection.

Layer1 = arcpy.GetParameterAsText(0)
Tabela1 = arcpy.GetParameterAsText(1)
Regiao_Estado = arcpy.GetParameterAsText(2)
Ano = arcpy.GetParameterAsText(3) 
mxd = arcpy.mapping.MapDocument("CURRENT") 
for lyr in arcpy.mapping.ListLayers(mxd): 
 lyr.name = Layer1
 lyr.definitionQuery = 'UF IN' Regiao_Estado
 arcpy.Statistics_analysis(Layer1, "F:\AgroBD.gdb\Output1", [[Ano, "SUM"]], "")
arcpy.RefreshActiveView()
arcpy.RefreshTOC()

I get the error:

SyntaxError: invalid syntax (M6a.py, line 10)
Failed to execute (Consulta).

I tried many ways to solve this problem but don`t get any progress.

asked Jul 10, 2017 at 12:27

1 Answer 1

2

You havent created the SQL query properly.

Try:

lyr.definitionQuery = """UF IN ({})""".format(Regiao_Estado)

EDIT:

If you need to expand the query, try the below. This using python string formatting. Please see this link for more info.

lyr.definitionQuery = """UF IN ({0}) OR UF IN ({1})""".format(Regiao_Estado, Test)
answered Jul 10, 2017 at 12:36
5
  • Macro, It`s work well, But I need to remove the two single ('). I can use this format with two fields too? Like UF and another ''TEST' field with another values. Commented Jul 10, 2017 at 12:42
  • This definition query will select multiple attributes in the UF field. If you need to select from a different field, you need to change the definition query and add an "OR" operator. for example UF IN (...) OR UF IN (...). Commented Jul 10, 2017 at 12:48
  • Nice, but I can use the same format? see the example: """UF IN ({})""".format(Regiao_Estado) AND """UF IN ({})""".format(TEST) Commented Jul 10, 2017 at 12:50
  • See edit above. Commented Jul 10, 2017 at 12:51
  • MacroZED, another question. Do you see any possible to do a multivalue selection in arcpy.Statistics_analysis(Layer1, "F:\AgroBD.gdb\Output1", [[Ano, "SUM"]], "")? I will choose more than one field to calculate, But I get an error, even using arcpy.GetParameterAsText(3).split(";") for the parameter. Commented Jul 10, 2017 at 13:11

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.