SQL实现根据类型对金额进行归类
数据库:oracle 问题:在一张明细表里有一个字段表示类型,一个表示金额。现需要将几种类型的金额各合计为一种。 如现有如下数据: idtypeamount 1A100 1A20 1B20 1C10 2B150 2D50 3A50 3C10 3D20 ............ 变成 idtypyA_amounttypyB_amounttypyC_amountt
数据库:oracle问题:在一张明细表里有一个字段表示类型,一个表示金额。现需要将几种类型的金额各合计为一种。
如现有如下数据:
id type amount
1 A 100
1 A 20
1 B 20
1 C 10
2 B 150
2 D 50
3 A 50
3 C 10
3 D 20
............
变成
id typyA_amount typyB_amount typyC_amount typyD_amount
1 120 20 10
2 150 50
3 50 10 20
........
我的实现是使用union all构建一个临时表,然后再使用聚合完成。想问一下有没有更好的方法,这样速度应该不会很快的。请大神帮忙!!!!
select temp.id ,sum(temp.typyA_amount) as typyA_amount ,sum(temp.typyB_amount) as typyB_amount ,sum(temp.typyC_amount) as typyC_amount ,sum(temp.typyD_amount) as typyD_amount from (select t.id ,sum(t.A) as typyA_amount --A ,null as typyB_amount --B ,null as typyC_amount --C ,null as typyD_amount --D from table t where t.type ='A' group by t.id union all select t.id ,null as typyA_amount --A ,sum(t.B) as typyB_amount --B ,null as typyC_amount --C ,null as typyD_amount --D from table t where t.type ='B' group by t.id union all select t.id ,null as typyA_amount --A ,null as typyB_amount --B ,sum(t.C) as typyC_amount --C ,null as typyD_amount --D from table t where t.type ='C' group by t.id union all select t.id ,null as typyA_amount --A ,null as typyB_amount --B ,null as typyC_amount --C ,sum(t.D) as typyD_amount --D from table t where t.type ='D' group by t.id) temp

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

HQL and SQL are compared in the Hibernate framework: HQL (1. Object-oriented syntax, 2. Database-independent queries, 3. Type safety), while SQL directly operates the database (1. Database-independent standards, 2. Complex executable queries and data manipulation).

Go language is an efficient, concise and easy-to-learn programming language. It is favored by developers because of its advantages in concurrent programming and network programming. In actual development, database operations are an indispensable part. This article will introduce how to use Go language to implement database addition, deletion, modification and query operations. In Go language, we usually use third-party libraries to operate databases, such as commonly used sql packages, gorm, etc. Here we take the sql package as an example to introduce how to implement the addition, deletion, modification and query operations of the database. Assume we are using a MySQL database.

How to use MySQLi to establish a database connection in PHP: Include MySQLi extension (require_once) Create connection function (functionconnect_to_db) Call connection function ($conn=connect_to_db()) Execute query ($result=$conn->query()) Close connection ( $conn->close())

Hibernate polymorphic mapping can map inherited classes to the database and provides the following mapping types: joined-subclass: Create a separate table for the subclass, including all columns of the parent class. table-per-class: Create a separate table for subclasses, containing only subclass-specific columns. union-subclass: similar to joined-subclass, but the parent class table unions all subclass columns.

Apple's latest releases of iOS18, iPadOS18 and macOS Sequoia systems have added an important feature to the Photos application, designed to help users easily recover photos and videos lost or damaged due to various reasons. The new feature introduces an album called "Recovered" in the Tools section of the Photos app that will automatically appear when a user has pictures or videos on their device that are not part of their photo library. The emergence of the "Recovered" album provides a solution for photos and videos lost due to database corruption, the camera application not saving to the photo library correctly, or a third-party application managing the photo library. Users only need a few simple steps

HTML cannot read the database directly, but it can be achieved through JavaScript and AJAX. The steps include establishing a database connection, sending a query, processing the response, and updating the page. This article provides a practical example of using JavaScript, AJAX and PHP to read data from a MySQL database, showing how to dynamically display query results in an HTML page. This example uses XMLHttpRequest to establish a database connection, send a query and process the response, thereby filling data into page elements and realizing the function of HTML reading the database.

Go functions can return multiple values of different types. The return value type is specified in the function signature and returned through the return statement. For example, a function can return an integer and a string: funcgetDetails()(int,string). In practice, a function that calculates the area of a circle can return the area and an optional error: funccircleArea(radiusfloat64)(float64,error). Note: If the function signature does not specify a type, a null value is returned; it is recommended to use a return statement with an explicit type declaration to improve readability.

To handle database connection errors in PHP, you can use the following steps: Use mysqli_connect_errno() to obtain the error code. Use mysqli_connect_error() to get the error message. By capturing and logging these error messages, database connection issues can be easily identified and resolved, ensuring the smooth running of your application.
