SQL中的整数变量的问题
我正在尝试过滤我只有数年在2007年至20011年之间的数据。我要过滤的变量是整数ano
。查询正在运行,但并未在此变量中过滤数据,而是在过滤其他变量(conta
)。
SELECT
`ano`, `sigla_uf`, `id_municipio`,
MAX(CASE WHEN (`conta` = 'Rec Tributária') THEN (`valor`) END) AS `tax_fees`,
MAX(CASE WHEN (`conta` = 'Impostos') THEN (`valor`) END) AS `tax`,
MAX(CASE WHEN (`conta` = 'IPTU') THEN (`valor`) END) AS `iptu`,
MAX(CASE WHEN (`conta` = 'ITBI') THEN (`valor`) END) AS `itbi`,
MAX(CASE WHEN (`conta` = 'ISSQN') THEN (`valor`) END) AS `issqn`
FROM
(SELECT
`ano`, `sigla_uf`, `id_municipio`, `conta`, `valor`
FROM
(SELECT
CAST(`ano` AS INT) AS `ano`, `sigla_uf`, `id_municipio`,
`estagio`, `portaria`, `conta`, `estagio_bd`,
`id_conta_bd`, `conta_bd`, `valor`
FROM
`basedosdados.br_me_siconfi.municipio_receitas_orcamentarias`)
WHERE
(`conta` = 'Rec Tributária' OR `conta` = 'Impostos' OR
`conta` = 'IPTU' OR `conta` = 'ITBI' OR `conta` = 'ISSQN'
AND ano >= 2007 AND ano < 2012))
GROUP BY
`ano`, `sigla_uf`, `id_municipio`
I am trying to filter the data I have only for years between 2007 and 20011. The variable I want to filter is an integerano
. The query is running but it is not filtering the data in this variable, but it is working to filter the other variable (conta
).
SELECT
`ano`, `sigla_uf`, `id_municipio`,
MAX(CASE WHEN (`conta` = 'Rec Tributária') THEN (`valor`) END) AS `tax_fees`,
MAX(CASE WHEN (`conta` = 'Impostos') THEN (`valor`) END) AS `tax`,
MAX(CASE WHEN (`conta` = 'IPTU') THEN (`valor`) END) AS `iptu`,
MAX(CASE WHEN (`conta` = 'ITBI') THEN (`valor`) END) AS `itbi`,
MAX(CASE WHEN (`conta` = 'ISSQN') THEN (`valor`) END) AS `issqn`
FROM
(SELECT
`ano`, `sigla_uf`, `id_municipio`, `conta`, `valor`
FROM
(SELECT
CAST(`ano` AS INT) AS `ano`, `sigla_uf`, `id_municipio`,
`estagio`, `portaria`, `conta`, `estagio_bd`,
`id_conta_bd`, `conta_bd`, `valor`
FROM
`basedosdados.br_me_siconfi.municipio_receitas_orcamentarias`)
WHERE
(`conta` = 'Rec Tributária' OR `conta` = 'Impostos' OR
`conta` = 'IPTU' OR `conta` = 'ITBI' OR `conta` = 'ISSQN'
AND ano >= 2007 AND ano < 2012))
GROUP BY
`ano`, `sigla_uf`, `id_municipio`
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
和
的优先级高于或
。这意味着您的:
实际读为:
相反:
也可以写为:
AND
has higher precedence thanOR
.This means that your:
actually is read as:
Instead do:
Which also can be written as: