数据库语言

在帆软报表中的函数写法:

多个语句查询:

CREATE OR REPLACE FUNCTION "public"."mrp_routing_workcenter_price1"(flagcompany_id int4, flagprice int4)
  RETURNS SETOF "pg_catalog"."record" AS $BODY$
    declare str varchar;    
            declare
                            rec record;
begin
  --首先执行此语句,用于查询是否有新的报工工序产生
  if exists(select lprocedure from mrp_production_report_line a where lstate=2 and not exists(select id from routing_workcenter_price b where a.lprocedure=b.workcenter_proid and a.company_id=b.company_id and a.lemployee=b.user_id)) then
    begin
      insert into routing_workcenter_price(workcenter_proid,company_id,user_id,cost,price)
            select DISTINCT lprocedure,company_id,lemployee,0.0,0.0 from mrp_production_report_line a
                where lstate=2 and not exists(select id from routing_workcenter_price b where a.lprocedure=b.workcenter_proid and a.company_id=b.company_id and a.lemployee=b.user_id);
  end;
  end if;
 
  if flagprice=1 then
 
   for rec in EXECUTE ‘
 
    select t0.id ,t1.id as cpdm,t2.name  as pm,t4.material,t4.cust_spec,t1.sequence,t1.name as gxm,t1.produce_description,t0.price,t0.cost,t5.login,t6.name,t0.remark from routing_workcenter_price t0  
                    left join mrp_routing_workcenter t1 on t0.workcenter_proid=t1.id
                    left join mrp_routing t2 on t1.routing_id=t2.id
                    left join product_product t3 on t3.name_template=t2.name
                    left join product_template t4 on t4.id=t3.product_tmpl_id
                    left join res_users t5 on t5.id=t0.user_id
                    left join res_partner t6 on t5.partner_id=t6.id
        where t0.company_id=‘||flagcompany_id||‘ and t4.active=‘‘t‘‘ and t3.active=‘‘t‘‘ and t0.price>0.0
         order by t2.name,t1.sequence;‘loop
RETURN next rec;
  end loop;
return;
  ELSEIF( flagprice=2) then
     for rec in EXECUTE ‘
            select t0.id ,t1.id as cpdm,t2.name  as pm,t4.material,t4.cust_spec,t1.sequence,t1.name as gxm,t1.produce_description,t0.price,t0.cost,t5.login,t6.name,t0.remark from routing_workcenter_price t0  
                        left join mrp_routing_workcenter t1 on t0.workcenter_proid=t1.id
                        left join mrp_routing t2 on t1.routing_id=t2.id
                        left join product_product t3 on t3.name_template=t2.name
                        left join product_template t4 on t4.id=t3.product_tmpl_id
                        left join res_users t5 on t5.id=t0.user_id
                      left join res_partner t6 on t5.partner_id=t6.id
            where t0.company_id=‘||flagcompany_id||‘ and t4.active=‘‘t‘‘ and t3.active=‘‘t‘‘  and t0.price<=0.0  
             order by t2.name,t1.sequence;‘loop
RETURN next rec;
  end loop;
return;
  ELSE
     for rec in EXECUTE ‘
        select t0.id ,t1.id as cpdm,t2.name  as pm,t4.material,t4.cust_spec,t1.sequence,t1.name as gxm,t1.produce_description,t0.price,t0.cost,t5.login,t6.name,t0.remark from routing_workcenter_price t0  
                        left join mrp_routing_workcenter t1 on t0.workcenter_proid=t1.id
                        left join mrp_routing t2 on t1.routing_id=t2.id
                        left join product_product t3 on t3.name_template=t2.name
                        left join product_template t4 on t4.id=t3.product_tmpl_id
                        left join res_users t5 on t5.id=t0.user_id
                      left join res_partner t6 on t5.partner_id=t6.id
            where t0.company_id=‘||flagcompany_id||‘ and t4.active=‘‘t‘‘ and t3.active=‘‘t‘‘  
             order by t2.name,t1.sequence;‘loop
 RETURN next rec;
   end loop;
   return;
end if;
END
$BODY$
  LANGUAGE ‘plpgsql‘ VOLATILE COST 100
 ROWS 1000
;

时间: 2024-10-08 21:37:49

数据库语言的相关文章

mysql数据库语言分类

数据定义语言:Data definition language,简称DDL,其包括createdrop alter等语句 Create table/database 表名/数据库名: Drop table 表名:(记录和结构都被删除) Alter table 表名 add column 新增加的列名 类型: Alter table 表名 modify 列名 类型:(修改表当中列的属性) Alter table 表名 change column(可以省略) 旧列名 新列名 类型: 数据操纵语言:D

[oracle]数据库语言分类

一般来说,数据库语言可以分成以下5大类: 1.数据定义语言DDL(Data Definition Language),用于改变数据库结构,包括创建.修改和删除数据库对象.包括create(创建).alter(修改).drop(删除)和等命令操作. 2.数据操纵语言DML(Data Manipulation Language),用户通过它可以实现对数据库的基本操作,包括insert(插入).delete(删除).update(更改)和select(查询)等命令操作. 3.数据查询语言DQL(Tra

SQL Server 第四堂课 用数据库语言while 循环做累加求和。以及数据库的备份,还原,分离,附加。以及check 约束

drop proc qiuhe create proc qiuhe --用数据库语言做累加求和 @n int as declare @sum int --相当于C#语言里定义变量 declare @i int set @sum=0 --再给变量赋值 ,相当于C#语言里的 int sum=0 set @i=1 -- 相当于for 循环里的 int i=1 (int i=1;i<=n;i++) while @i<[email protected] --for(int i=1;i<=n;i++

Oracle数据库语言分类

一般来说,Oracle数据库语言可以分成以下5大类: 1.DML(Data Mannipulation Language)数据操纵语言:查询.操纵数据表资料行 SELECT : 检索数据库表或视图数据 INSERT :  将数据行新增至数据库表或视图中 UPDATE : 修改表或视图中现有的数据行 DELETE : 删除表或视图中现有的数据行 注意:DML语句不会自动提交事务! 2.DDL(Data Definition Language)数据定义语言:建立.修改.删除数据库中数据表对象 CRE

oracle数据库语言类型

oracle数据库语言类型一般分为五大类型 1 DDL(data definition language)数据定义语言 CREATE TABLE :创建表 ALTER TABLE :修改表 DROP TABLE:删除表(对表整体删除,表结构也不存在了) TRUNCATE TABLE :删除表(删除所有行,表结构还在) 2 DML(data Manipulation language)数据操纵语言 INSERT :插入 UPDATE :更新 DELETE:删除 3 DQL(Data Query L

DBMS数据库语言

https://www.yiibai.com/dbms/dbms-language.html DBMS具有适当的语言和接口来表达数据库查询和更新.数据库语言可用于读取,存储和更新数据库中的数据. 数据库语言的类型 1. 数据定义语言 DDL代表数据定义语言.它用于定义数据库结构或模式. 用于在数据库中创建模式,表,索引,约束等. 使用DDL语句,可以创建数据库的框架. 数据定义语言用于存储元数据的信息,如表和模式的数量,它们的名称,索引,每个表中的列,约束等. 以下是DDL下的一些任务: Cre

SQL数据库语言总结及代码示例

转载请注明出处:http://blog.csdn.net/anxpp/article/details/51295020,谢谢! 本文在这上面阅读代码效果更好:http://m.blog.csdn.net/article/details?id=51295020 很久不用sql,就逐渐忘了,这里作下总结,也方便自己以后查看. 阅读以下内容,您可能需要了解MySQL中的数据类型:MySQL 数据类型全解 本文使用Mysql 5.7并使用Mysql workbench演示. 通宵原创,如果您觉得本文对您

C#自己的数据库语言LINQ(1)

与其他语言不太相同,C#语言本身有着自己的数据库查询语言,叫做LINQ,全称Language-INtegrated Query. 在很大程度上,LINQ与我们常用的SQL是相通的,但是却有着更加独特的一些特性.由于程序员每天都要对内存.数据库或是XML文件中的数据对象进行查找和存取,但SQL语言同编程语言的分离为这种行为造成了很大的困扰. 而LINQ作为一种连接面向对象语言和关系数据库的桥梁,联合了对内存.数据库和XML的数据处理.同时作为C#的一种内部语言,写法上更有利于C#程序员操作. 1

Oracle数据库语言——结构化查询语言SQL

一.数据定义语言DDL 1.创建表空间:CREAT TABLESPACE lyy DATAFILE 'C:/app/lyy.dbf' SIZE 10M;(创建一个10M的表空间,存放在C盘app文件夹中) 删除表空间:DROP TABLESPACE lyy; 2.创建用户和赋权:CREAT USER lyy PROFILE DEFAULT IDENTIFIED BY 123456 DEFAULT TABLESPACE lyy TEMPORARY TABLESPACE temp ACCOUNT U

oracle数据库语言(2)----数据操作语言

1 DML(数据操纵语言)Data Manipulation Language 2 用于增.删.改 数据库中的数据 3 常伴随着TCL(事物操作语言)----commit(保存):rollback(回滚): 4 create table stu( id number(5), name char(12) ); 5 6 1.向表中插入数据: 7 insert into stu (id ,name) values(1,'秦舞阳');----第一种写法 8 insert into stu values(