`

Sql编写实例

阅读更多

Sql编写实例:

一、行变列。

create or replace view v_account_detail as
select t.project_id,
       t.pay_year,
       t.pay_quart,
       t.pay_month,
       (case t.catalog
         when '工程施工费' then
         decode(sum(amount), null, 0,sum(amount))

       end) as engineer_cost,
       (case t.catalog
         when '设备费' then
          decode(sum(amount), null, 0,sum(amount))
       end) as equip_cost,
       (case t.catalog
         when '前期工作费' then
          decode(sum(amount), null, 0,sum(amount))
       end) as pre_cost,
       (case t.catalog
         when '工程监理费' then
          decode(sum(amount), null, 0,sum(amount))
       end) as super_cost,
       (case t.catalog
         when '拆迁补偿费' then
          decode(sum(amount), null, 0,sum(amount))
       end) as remove_cost,
       (case t.catalog
         when '竣工验收费' then
          decode(sum(amount), null, 0,sum(amount))
       end) as checke_cost,
       (case t.catalog
         when '业主管理费' then
          decode(sum(amount), null, 0,sum(amount))
       end) as owner_cost
  from (select a.project_id,
               '工程施工费' as catalog,
               to_number(to_char(t.pay_date, 'YYYY')) as pay_year,
               to_number(to_char(t.pay_date, 'Q')) as pay_quart,
               to_number(to_char(t.pay_date, 'mm')) as pay_month,
               amount
          from pay_pre_cost_payment t
          left join pay_pre_cost_apply a
            on a.apply_bill_id = t.apply_bill_id
        union all
        select a.project_id,
               '工程施工费' as catalog,
               to_number(to_char(t.pay_date, 'YYYY')) as pay_year,
               to_number(to_char(t.pay_date, 'Q')) as pay_quart,
               to_number(to_char(t.pay_date, 'mm')) as pay_month,
               amount
          from pay_proc_cost_payment t
          left join pay_proc_cost_apply a
            on a.apply_bill_id = t.apply_bill_id
        union all
        select a.project_id,
               '工程施工费' as catalog,
               to_number(to_char(t.pay_date, 'YYYY')) as pay_year,
               to_number(to_char(t.pay_date, 'Q')) as pay_quart,
               to_number(to_char(t.pay_date, 'mm')) as pay_month,
               amount
          from pay_comp_cost_payment t
          left join pay_comp_cost_apply a
            on a.apply_bill_id = t.apply_bill_id
        union all
        select t.project_id,
               cost_catalog as catalog,
               to_number(to_char(t.pay_date, 'YYYY')) as pay_year,
               to_number(to_char(t.pay_date, 'Q')) as pay_quart,
               to_number(to_char(t.pay_date, 'mm')) as pay_month,
               amount
          from pay_other_cost_payment t) t
 group by t.project_id,t.catalog, t.pay_year, t.pay_quart, t.pay_month;

 知识点:1)view 为视图。

             2)union all 将 查询结果合并(含重复的数据),union 排除重复的。列名可以不同,列的个数必须相同。

             3)group by 除了查询出来的可以求和的sum值以外的所有列作为条件分组。

             4)  left join  on 左外联,左边表的数据全部显示,不管右边表有没有对应的符合条件的数据

             5)to_number(to_char(t.pay_date, 'Q')) as pay_quart 取季度,取数值类型。

             6)行变列,将行中 某一属性作为列 (case t.catalog
         when '工程监理费' then
          decode(sum(amount), null, 0,sum(amount))
       end) as super_cost,

二、表a、表b。a一对多b。俩表关联查询,由上向下查询。例子:显示a的信息同时显示b对应a 中id 相同项目的和。

 select a.id,a.name,(select sum(b.score) from b where b.id = a.id) as totalScorce from a

分享到:
评论

相关推荐

    C# 枚举 SQL Server 实例

    在实际开发中,你可能需要根据项目需求,结合上述知识点,编写代码来实现枚举SQL Server实例的功能,比如创建一个列表展示所有实例,或者允许用户选择特定实例进行连接。这涉及到对ADO.NET数据提供者(如`...

    SQL Server实例大全

    《SQL Server实例大全》是一本全面讲解SQL Server数据库管理系统的实用教程,包含了各种实际操作案例,旨在帮助读者深入理解和熟练掌握SQL Server的核心功能。通过丰富的实例和详尽的注释,本书旨在提升读者在数据库...

    获取局域网中SQL的实例名

    在IT领域,尤其是在数据库管理中,获取局域网中SQL Server的实例名是一项常见的任务,这...通过编写C#程序,我们可以有效地遍历网络,找到所有可访问的SQL Server实例,这对于自动化管理和监控数据库系统非常有帮助。

    Oralce数据库SQL和pl_sql实例教程

    Oracle数据库是世界上最流行的数据库管理系统之一,SQL(Structured Query Language)是用于管理关系数据库的标准语言,而PL/SQL是Oracle数据库特有的编程语言,扩展了SQL的功能,使得能够编写复杂的存储过程和...

    获取局域网SQL Server实例信息

    4. **编写自定义代码**:对于开发人员,可以编写C#、VB.NET或Python等代码,利用SNMP协议或SQL Server的系统存储过程(如`xp_msver`)来获取信息。 5. **网络扫描工具**:利用网络扫描软件如Nmap或Advanced IP ...

    vc操作sql数据库实例

    6. **SQL语句**: 在VC++中,你可以直接编写SQL语句(如SELECT、INSERT、UPDATE和DELETE)来查询或修改数据库。CRecordset类支持参数化查询,可以防止SQL注入攻击。 7. **事务处理**: 当需要确保一组数据库操作全部...

    C# 搜索局域网所有SQL数据库实例

    在本场景中,C#将作为主要的开发工具,用于编写搜索和识别局域网内SQL Server数据库实例的程序。 2. **SQL Server数据库**:SQL(Structured Query Language)是用于管理关系数据库的标准语言。SQL Server是...

    SQL数据库实例教程

    另外,了解如何编写高效的SQL语句,避免全表扫描,也是提升数据库性能的关键。 本书可能包含的章节可能有:SQL基础、数据类型与表的创建、查询语句详解、联接操作、子查询、存储过程和触发器、事务处理、视图、索引...

    SQL2005 数据库经典实例

    实例会演示如何编写和调用存储过程,以及何时何地使用触发器。 5. 数据导入导出:SQL Server 2005提供了强大的数据导入导出工具,可以方便地将数据从其他格式(如Excel、CSV)迁移至SQL Server,或者从SQL Server...

    大量VB6+SQLSERVER实例

    《大量VB6+SQLSERVER实例》是一份宝贵的资源集合,主要涵盖了使用Visual Basic 6(VB6)与Microsoft SQL Server数据库进行开发的各种实践案例。这些实例对于深入理解VB6与SQL Server的集成应用,以及提升在实际项目...

    sqlServer实例

    【SQL Server实例详解】 在IT领域,SQL Server是一款由微软...通过阅读教材、解读书中的习题和尝试编写VB代码,学习者可以深入理解如何利用SQL Server构建和管理教学管理系统,从而提升自己的数据库技术和编程技能。

    SQL存储过程实例.doc

    接下来,我们看几个关于SQL查询的实例,这些实例涉及到了关系数据库中的联接、条件过滤和时间区间查询: 1. 查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的信息。这需要使用`JOIN`操作连接`...

    sql server教程,sql server实例,sql server常用语句,经典语句(超详细打包下载)

    在学习SQL Server时,理解T-SQL(Transact-SQL)是关键,它是SQL Server特有的扩展,包含了SQL标准的所有功能,同时增加了诸如DECLARE、SET、BEGIN/END等用于编写动态SQL和流程控制的命令。此外,了解数据库引擎的...

    Oracle PL/SQL实例精解 数据库建立代码

    除了基本的数据库对象创建,PL/SQL还允许我们编写存储过程、函数、触发器等,以实现更复杂的业务逻辑。例如,我们可以创建一个存储过程来处理学生选课: ```sql CREATE OR REPLACE PROCEDURE enroll_student( p_...

    oracle pl sql 实例精解 源代码

    最后,ChapterExampleScripts.zip可能包含的是各章的示例脚本,这些脚本可能涵盖了从基础的SQL查询到复杂的事务处理、存储过程的编写、数据库连接池的使用等多个方面。通过阅读和执行这些脚本,读者能掌握如何在PL/...

    SQL宝典实例代码,《SQL Server 2008宝典》所有代码

    这个压缩包包含了书中提到的所有实例代码,是学习SQL Server 2008不可或缺的辅助资料。 1. **SQL基础知识**:SQL(Structured Query Language)是用于管理关系数据库的标准语言,包括数据查询、数据更新、数据插入...

    Oracle PL/SQL 实例精解(第4版涵盖Oracle 11g)+源码脚本

    本书会讨论如何利用PL/SQL编写高效的代码,并通过分析和调优提高程序性能。 9. **并发控制**:在多用户环境中,并发访问数据可能导致数据不一致。Oracle提供了一些并发控制机制,如锁定和事务管理。书中会阐述如何...

    Oracle数据库SQL和PL/SQL实例教程

    读者将学习如何编写高效的SQL查询,以及如何利用PL/SQL进行更复杂的业务逻辑处理。通过实例练习,可以加深对理论知识的理解,提高实际操作能力,为成为Oracle数据库管理员或开发者奠定坚实基础。

    delphi7操作SQL数据库简单实例.pdf

    Delphi7操作SQL数据库简单实例 Delphi7操作SQL数据库简单实例是一个简单的数据库管理系统,用于提供系统用户登录身份验证功能。系统登录对话框是数据库管理系统的基本功能之一,用于验证用户身份,以确保系统数据...

    VB链接SQL SEVER实例

    标题中的“VB链接SQL SERVER实例”指的是使用Visual Basic(VB)编程语言与Microsoft SQL Server数据库进行交互的实际示例。在IT行业中,VB是.NET框架的一部分,常用于开发桌面应用程序,而SQL Server则是一款广泛...

Global site tag (gtag.js) - Google Analytics