python中的 sql语句用法



函数中应用sql语句def _get_cust_number(self,cr,uid,ids,field_name,args,context=None):
    res={}
    for order in self.browse(cr, uid, ids, context=context):
       #获取单据信息            aa=order.origin
            if aa:
                sql="select t1.cust_numr_no from stock_fah t0 left join sale_orde t1 on t0.origin=t1.name where t0.origin=‘%s‘"%(aa)
                cr.execute(sql)
                dict4=cr.dictfetchall()
                if dict4:
                    dd=dict4[0][‘cust_numr_no‘]
                    res[order.id]=dd
                else:
                    res[order.id]=‘‘
            else:
                res[order.id]=‘‘
    return res

或者着一种

函数中另外一种写法cr.executecr.execute(‘‘‘select ref_line_id,nolqty from( select ref_line_id,sum(COALESCE(case when t0.location_id=get_warehouse_id(‘成仓‘) then product_qty  when t0.location_id=get_warehouse_id(‘原仓‘)  then product_qty  else -1*product_qty end,0) ) dlvqty from
                                 stock_ynum t0 left join stock_fah t1 on t0.picking_id=t1.id
                                  where t0.state=‘done‘ and ((t0.location_id=get_warehouse_id(‘成仓‘) and t0.location_dest_id=get_warehouse_id(‘Customers‘)) or (t0.location_id=get_warehouse_id(‘Customers‘)
                                   and t0.location_dest_id=get_warehouse_id(‘成仓‘)))
                                   or ((t0.location_id=get_warehouse_id(‘原仓‘)
                                    and t0.location_dest_id=get_warehouse_id(‘Customers‘)) or (t0.location_id=get_warehouse_id(‘Customers‘) and t0.location_dest_id=get_warehouse_id(‘原仓‘)))
                                    group by t0.product_id,ref_num,ref_line_id)t where ref_line_id in %s‘‘‘,(tuple(ids),))
        jhqty = dict(cr.fetchall())

或者创建views



初始化执行的函数:创建一个视图,用sql语句    ,紫色为sql语句

def init(self,cr):
        tools.sql.drop_view_if_exists(cr, ‘cust_cp_info_report‘)
        cr.execute("""
            create or replace view cust_product_info_report as (
               select t0.id,t0.hpartner_id as hpartner_id, t0.khwl_code as khwl_code,t1.product_mp_id as productn,
               t3.pname,t3.mmar,t3.spec,
               t4.id as name_uom,  t5.price as custo_price,t0.product_meno as product_meno ,t0.meno as meno,t5.date_from,t5.date_to
                from  product_custo_info t0
                LEFT JOIN product_order t1 on t0.product_tmpl_id=t1.product_tmpl_id
                LEFT JOIN product_model t3 on t3.id=t1.product_tmpl_id
                LEFT JOIN ke_partner t2 on t2.id=t0.hpartner_id
                LEFT JOIN product_dan t4 on  t3.uom_id=t4.id
                left join partner_cp_price t5  on t5.ppp_line_id=t0.id
                where  (now()>=t5.date_from  and now()<=t5.date_to) or  (t5.date_from is null and t5.date_to is null )  or
                (t5.date_from is null and (now()<=t5.date_to))  or (t5.date_to is null and (now()>=t5.date_from))

            )
        """)

 

原文地址:https://www.cnblogs.com/1314520xh/p/8328450.html

时间: 2024-09-30 21:29:36

python中的 sql语句用法的相关文章

Excel 中使用sql语句查询

将Excel连接Oracle数据库 Excel选项板中"数据"—"自其他来源"下拉菜单中有有个可以连接其它数据库的选项"来自数据连接向导"和"来自Microsoft query". Oracle数据源的配置 在Excel中,不管实现哪种方式的对那种数据库的访问都需要配置数据源ODBC. 步骤1:打开Microsoft ODBC管理器,点击选项"用户DSN"的"添加"按钮 图 11 步骤2

在Excel中使用SQL语句查询和筛选

本文转自:http://blog.sina.com.cn/s/blog_5fc375650102e1g5.html 今天在微博上看到@数据分析精选 分享的一篇文章,是关于<在Excel中使用SQL语句实现精确查询>,觉得非常受用,分享给大家. 微博上有人回复评论说直接用vlookup.或者导入数据库进行查询处理就好了,岂不是更高效.更灵活:其实给人的第一直观感觉是这样子的,但是我们多想一步,这篇文章的应用场景.使用前提条件是什么?我想到的有以下几个方面:①数据量不是很大的时候:②数据结构导入数

PL/SQL Developer中输入SQL语句时如何自动提示字段

在PL/SQL Developer中编写sql语句时,如果无法自动提示字段那是一件痛苦的事情,工作效率又低,在此演示下如何在PL/SQL Developer工具中自动提示字段,让开发者省时又省心,操作步骤如下:tools–>preferences–>user interface–>code assistant–>在右边选中authomatically activated即可,如 PL/SQL Developer中输入SQL语句时如何自动提示字段,布布扣,bubuko.com

使用SQLQuery 在Hibernate中使用sql语句

session.createSQLQuery.转载 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口.下面来描述如何使用这个API进行查询. 1.标量查询(Scalar queries) 最基本的SQL查询就是获得一个标量(数值)的列表. sess.createSQLQuery("SELECT * FROM CATS").list();sess.createSQLQuery("SELECT ID,

oracle和java中的sql语句

在调试代码的时候遇到这样一个问题,程序运行到sql语句就抛invalid character异常,那我只好把sql语句拷出来,在oracle中执行一下,然而并没有什么错,这可难坏我了,这样都找不到错误,这到底是啥问题,摸不着头脑,一个老程序员提醒了我,在java中,sql语句的最后不能加分号,去掉之后可以正常执行了.虽然这是一个小问题,但我从来没注意过,以后就不会犯这低级错误了,哈哈.

在phpmyadmin中执行sql语句出现的错误:Unknown storage engine &#39;InnoDB&#39;

在phpmyadmin中执行sql语句出现的错误:Unknown storage engine 'InnoDB' 解决方法:解决方法:             1.关闭MySQL数据库       2.修改my.ini文件,把skip-innodb这行注释掉       3.打开MySQL数据库 原因:没有开启MySQL InnoDB存储引擎. 在phpmyadmin中执行sql语句出现的错误:Unknown storage engine 'InnoDB'

在MySQL命令行中使用SQL语句的规则

规则1: SQL语句必须以分号(;)或者(\G)结束 分号(;)是SQL语句的结束标志.如果遗忘了分号,而直接按下回车键时,在MySQL客户端上将显示如下 mySQL> SELECT * FROM customer -> 因为没有以分号结束,客户端认为SQL语句并没有结束,显示[->]等待用户继续输入命令,直到以分号结束.有些数据库中,支持省略最后的分号的情况. 规则2: 保留关键字不区分大小写 保留关键字是SQL中事先定义好的关键字,如上面检索语句中的SELECT.FROM等就属于保留

SQL语句:关于复制表结构和内容到另一张表中的SQL语句

1.复制新表结构及数据到新表create table 新表 select * from 旧表 2.只复制表结构到新表 create table 新表 select * from 旧表 where 1=2 3.复制旧表的数据到新表(假设两个表结构一样) insert into 新表 select * from 旧表 4.复制旧表的数据到新表(假设两个表结构不一样) insert into 新表(字段1,字段2,......) select 字段1, 字段2,... from 旧表 SQL语句:关于

EF中使用SQL语句或存储过程

EF中使用SQL语句或存储过程或视图 1.无参数查询var model = db.Database.SqlQuery<UserInfo>("select* from UserInfoes ").ToList(); 2.有参查询var model = db.Database.SqlQuery<UserInfo>("select* from UserInfoes where [email protected] ",new SqlParameter