Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Cách nhân hai cột trong SQL

Vấn đề:

muốn nhân các giá trị từ hai cột của bảng.

Ví dụ:

Cơ sở dữ liệu của chúng tôi có một bảng tên là purchase với dữ liệu trong các cột sau:id , name , price , quantitydiscount_id .

id tên giá số lượng discount_id
1 bút 7 3 1
2 sổ tay 5 8 2
3 cao su 11 3 1
4 hộp đựng bút chì 24 2 3

Hãy nhân giá với số lượng sản phẩm để biết số tiền bạn đã trả cho mỗi mặt hàng trong đơn đặt hàng của mình.

Giải pháp:

SELECT name,
 price*quantity  AS total_price
FROM purchase;

Truy vấn này trả về các bản ghi có tên của sản phẩm và tổng giá của sản phẩm:

name total_price
bút 21
sổ tay 40
cao su 33
hộp đựng bút chì 48

Thảo luận:

Bạn có cần chọn tên của từng bản ghi không (trong trường hợp của chúng tôi là name ) và tính toán kết quả của việc nhân một cột số với một cột khác (pricequantity )? Tất cả những gì bạn cần làm là sử dụng toán tử nhân (*) giữa hai cột bội và (price * quantity ) trong một SELECT đơn giản truy vấn. Bạn có thể đặt bí danh cho kết quả này bằng AS từ khóa; trong ví dụ của chúng tôi, chúng tôi đã đặt cho cột nhân một bí danh là total_price .

Lưu ý rằng bạn cũng có thể sử dụng dữ liệu từ hai cột đến từ các bảng khác nhau. Chúng tôi có một bảng khác trong cơ sở dữ liệu của chúng tôi có tên discount có các cột có tên id và giá trị value; cái sau đại diện cho phần trăm chiết khấu đối với mặt hàng có ID nhất định.

id giá trị
1 10
2 20
3 30

Hãy xem ví dụ bên dưới.

Giải pháp:

SELECT p.name, 
 p.price*p.quantity*(100-d.value)/100  AS total_price
FROM purchase p
JOIN discount d ON d.id=p.discount_id;

Đây là kết quả:

name total_price
bút 18.90
sổ tay 32,00
cao su 29,70
hộp đựng bút chì 33.60

Như bạn có thể thấy, khá dễ dàng để nhân các giá trị từ các bảng đã nối khác nhau. Trong ví dụ của chúng tôi ở trên, chúng tôi đã nhân giá của mỗi sản phẩm với số lượng của nó từ một bảng (purchase ) và sau đó nhân tổng giá này với phần trăm chiết khấu bằng cách sử dụng discount bảng.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xuất cơ sở dữ liệu của bạn để chuyển

  2. Nhân bản cơ sở dữ liệu với PSDatabaseClone

  3. ORA-03135 - Bản sao RMAN

  4. Tìm hiểu khái niệm cơ bản về ghi nhật ký Java

  5. Phân mảnh chỉ mục được nhóm không mong muốn