返回与sql statment odoo 9不同

时间:2016-12-20 12:39:29

标签: openerp odoo-9

我在数据库中共有3行,其中一行是ID = 1,在控制台显示3行而不是一行!

@api.multi 
    def call_func(self):
        result = []
        for data in self.search([]):
            self._cr.execute('''select distinct
                    date
                from
                    mytable
                 WHERE id = 1''')
            for line in self._cr.dictfetchall():
                print line["date"]

我添加了明显但不起作用。

输出是:

2016-01-01 00:00:00
2016-01-01 00:00:00
2016-01-01 00:00:00

我需要2016-01-01 00:00:00

1 个答案:

答案 0 :(得分:1)

SQL语句看起来不错。您是否直接使用客户端在DB服务器上执行该语句?你只得到一张唱片吗?

如果是,我认为您的问题可能在于self.search([])。这是你写的功能吗?那会对记录进行搜索吗?如果是这样,您是否有可能基于空字符串进行搜索并返回表格的所有3条记录?

如果self.search([])返回一个包含3个元素的数组,那么你只需在同一行上执行SELECT distinct三次。

如果这是您的问题,那么您可以通过删除此部分来修复它:

for data in self.search([]):