BTC USD 64,916.1 Gold USD 4,448.98
Time now: Jun 1, 12:00 AM

IF dalam SQL statement - macamana nak ringkaskan

bapak71

Freshie
Messages
1
Joined
Jul 30, 2013
Messages
1
Reaction score
0
Points
3
hi

ini saya punya SQL statement

Code:
$ssql = "SELECT A.id, A.id_item, A.id_header, ";
$ssql .= "CONCAT ( IFNULL((SELECT C.sub_tajuk FROM jkh_sub_bilangan C ";
$ssql .= "WHERE C.bahagian = B.bahagian AND C.bilangan = B.bilangan AND C.item_mula <= B.bil_item ";
$ssql .= "ORDER BY C.item_mula DESC LIMIT 1),''), ";
$ssql .= "B.keterangan) AS butirkerja, B.bahagian AS bhg, ";
$ssql .= "CONCAT (B.bilangan, B.bil_item, IF(B.bil_sub_item = '','',CONCAT('(',B.bil_sub_item,')'))) AS bil, ";  

$ssql .= "IF (B.harga > 0,B.harga,'') AS kadar, ";
$ssql .= "IF (B.harga > 0,A.kuantiti,'') AS kuantiti, ";
$ssql .= "IF (B.harga > 0, B.harga * A.kuantiti,'') AS harga ";

$ssql .= "FROM undi_bq A, jkh_item B WHERE A.id_item = B.id AND A.id_header = ";

tujuan saya adalah untuk format result dari sql statement ini supaya bila

IF (B.harga > 0)
column kadar, kuantiti dan harga akan ada value​
ELSE
ketiga-tiga column ini akan kosong​

sql statement ni dah oK, cuma kalau boleh saya nak ringkaskan supaya tak perlu ulang IF (B.harga > 0) sampai 3 kali

ada sapa-sapa boleh tolong...

terima kasih
 
hi

ini saya punya SQL statement

Code:
$ssql = "SELECT A.id, A.id_item, A.id_header, ";
$ssql .= "CONCAT ( IFNULL((SELECT C.sub_tajuk FROM jkh_sub_bilangan C ";
$ssql .= "WHERE C.bahagian = B.bahagian AND C.bilangan = B.bilangan AND C.item_mula <= B.bil_item ";
$ssql .= "ORDER BY C.item_mula DESC LIMIT 1),''), ";
$ssql .= "B.keterangan) AS butirkerja, B.bahagian AS bhg, ";
$ssql .= "CONCAT (B.bilangan, B.bil_item, IF(B.bil_sub_item = '','',CONCAT('(',B.bil_sub_item,')'))) AS bil, ";  

$ssql .= "IF (B.harga > 0,B.harga,'') AS kadar, ";
$ssql .= "IF (B.harga > 0,A.kuantiti,'') AS kuantiti, ";
$ssql .= "IF (B.harga > 0, B.harga * A.kuantiti,'') AS harga ";

$ssql .= "FROM undi_bq A, jkh_item B WHERE A.id_item = B.id AND A.id_header = ";

tujuan saya adalah untuk format result dari sql statement ini supaya bila

IF (B.harga > 0)
column kadar, kuantiti dan harga akan ada value​
ELSE
ketiga-tiga column ini akan kosong​

sql statement ni dah oK, cuma kalau boleh saya nak ringkaskan supaya tak perlu ulang IF (B.harga > 0) sampai 3 kali

ada sapa-sapa boleh tolong...

terima kasih

Err.. boleh amik part yang penting tak.. Iaitu SQL sahaja...
 
cer camni, sorry kalu salah aku men hentam jer :

DECLARE @kadar decimal(8,2), @kuantiti int, @harga decimal(8,2)
IF
B.harga > 0
BEGIN
SET @kadar = B.harga;
SET @kuantiti = A.kuantiti;
SET @harga = B.harga;
END
ELSE
BEGIN
SET @kadar = 0.00;
SET @kuantiti = 0;
SET @harga = 0.00;
END
GO
 
Back
Top
Log in Register