Saat menggunakan WHERE, kita menggunakan operator perbandingan. Selain operator perbandingan, SQL juga menyediakan operator aritmetika dan operator bitwise yang termasuk operator binary. Dua jenis operator tersebut bisa digunakan untuk mengolah nilai dari kolom dalam dari satu baris data sebelum disimpan sebagai nama kolom dengan menggunakan klausa AS.
Operator aritmetika dan bitwise dalam query SQL sama dengan operator dalam bahasa C / C++. Sekedar sebagai pengingat, operator-operator tersebut bisa kalian lihat di bawah ini.
- Penjumlahan ( + )
- Pengurangan ( - )
- Pembagian ( / )
- Perkalian ( * )
- Modulus ( % )
- And ( & )
- Or ( | )
- Xor ( ^ )
Contoh Query :
- Select (kuantitas * harga) AS total From penjualan
- Select Sum(kuantitas*harga) AS total From penjualan
Kalian bisa menggunakan Sum untuk menjumlahkan hasil operasi aritmetika atau bitwise. Selain itu, kalian juga bisa menggunakan avg.
//install librarynya kalau belum ada
#include <iostream>
#include <sqlite3.h>
char *err;
typedef char stringku[30];
int simple_callback(void *notused, int jkolom, char **dataku, char **kolom){
printf("%s\n", dataku[0]);
printf("\n");
return 0;
}
int callback(void *notused, int jkolom, char **dataku, char **kolom){
for(int i=0;i<jkolom;i++)printf("%s = %s\n", kolom[i], dataku[i]);
printf("\n");
return 0;
}
void isi_database(sqlite3 *conn){
char query[255];
static stringku data[3][3]={{"Gula", "12000", "2"}, {"Terigu", "10000", "3"}, {"Mentega", "5000", "4"}};
sqlite3_exec(conn, "Create Table belanjaan(id INTEGER Primary Key, nama Text, harga INTEGER, kuantitas INTEGER);", 0, 0, &err);
//tambahkan data
for(int i=0;i<3;i++){
sprintf(query, "INSERT INTO belanjaan(id, nama, harga, kuantitas) VALUES('%d', '%s', '%s', '%s')", i, data[i][0], data[i][1], data[i][2]);
sqlite3_exec(conn, query, 0, 0, &err);
}
}
int main(){
int res=0;
char query[255]="SELECT nama, harga, kuantitas, (harga*kuantitas) AS total FROM belanjaan";
sqlite3 *conn=NULL;
sqlite3_stmt *stmt=NULL;
sqlite3_open("databaseku.dat", &conn);
//jika database kosong, tambah tabel
sqlite3_exec(conn, "Drop Table belanjaan", 0, 0, &err);
isi_database(conn);
//gunakan query
sqlite3_exec(conn, query, callback, 0, &err);
//tampilkan grand total
printf("\ngrand total = ");
sqlite3_exec(conn, "SELECT Sum(harga*kuantitas) AS grand_total FROM belanjaan", simple_callback, 0, &err);
sqlite3_close(conn);
return 0;
}
Output :
nama = Gula harga = 12000 kuantitas = 2 total = 24000 nama = Terigu harga = 10000 kuantitas = 3 total = 30000 nama = Mentega harga = 5000 kuantitas = 4 total = 20000 grand total = 74000