Masalah:
ingin mengalikan nilai dari dua kolom tabel.
Contoh:
Basis data kami memiliki tabel bernama purchase
dengan data pada kolom berikut:id
, name
, price
, quantity
, dan discount_id
.
id | nama | harga | jumlah | diskon_id |
---|---|---|---|---|
1 | pena | 7 | 3 | 1 |
2 | buku catatan | 5 | 8 | 2 |
3 | karet | 11 | 3 | 1 |
4 | tempat pensil | 24 | 2 | 3 |
Mari kita kalikan harga dengan jumlah produk untuk mengetahui berapa banyak yang Anda bayarkan untuk setiap item dalam pesanan Anda.
Solusi:
SELECT name, price*quantity AS total_price FROM purchase;
Kueri ini mengembalikan catatan dengan nama produk dan harga totalnya:
nama | harga_total |
---|---|
pena | 21 |
buku catatan | 40 |
karet | 33 |
tempat pensil | 48 |
Diskusi:
Apakah Anda perlu memilih nama setiap record (dalam kasus kami, name
) dan hitunglah hasil perkalian satu kolom numerik dengan kolom lainnya (price
dan quantity
)? Yang perlu Anda lakukan adalah menggunakan operator perkalian (*) di antara dua kolom perkalian (price
* quantity
) dalam SELECT
simple sederhana pertanyaan. Anda dapat memberikan hasil ini alias dengan AS
kata kunci; dalam contoh kami, kami memberi kolom perkalian alias total_price
.
Perhatikan bahwa Anda juga dapat menggunakan data dari dua kolom yang berasal dari tabel yang berbeda. Kami memiliki tabel lain di database kami bernama discount
yang memiliki kolom bernama id
dan value
; yang terakhir mewakili persentase diskon pada item dengan ID yang diberikan.
id | nilai |
---|---|
1 | 10 |
2 | 20 |
3 | 30 |
Lihat contoh di bawah ini.
Solusi:
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;
Ini hasilnya:
nama | harga_total |
---|---|
pena | 18.90 |
buku catatan | 32.00 |
karet | 29,70 |
tempat pensil | 33,60 |
Seperti yang Anda lihat, cukup mudah untuk mengalikan nilai dari tabel gabungan yang berbeda. Dalam contoh kami di atas, kami mengalikan harga setiap produk dengan kuantitasnya dari satu tabel (purchase
) lalu dikalikan total harga ini dengan persentase diskon menggunakan discount
tabel.