 |
คือผมต้องการจะ Sum ข้อมูลของสินค้าประเภทเดียวกันครับ ว่าในหนึ่งวันให้แสดงยอดที่ขายได้ จนครบหนึ่งเดื่อนครับ |
|
 |
|
|
 |
 |
|
มีตารางประเภทสินค้าแล้วใช่ไหมครับ ถ้ามีแล้วแนะนำให้ใช้ PIVOT TABLE ครับ
|
 |
 |
 |
 |
Date :
2017-10-11 17:47:22 |
By :
OOP |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือผมแยกเป็นหมวดครับตามความเข้าใจไม่รู้ถูกต้องตามหลักไหม กำหนดเป็นแบบ text ทั้งหมดครับ
table A
-A1
-A2
-A3-A25
table B
-B1
-B2
-B3-B30
table C
-C1
-C2
-C3-C50
|
 |
 |
 |
 |
Date :
2017-10-12 14:09:23 |
By :
Lun2560 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าสินค้าไม่เยอะ
Code (SQL)
Select date_sale,
Sum(if(prod_id='aa',amount,0)) as aa,
Sum(if(prod_id='bb',amount,0)) as bb
From tablename
Where date_sale between startdate and lastdate
Group by date_sale
|
 |
 |
 |
 |
Date :
2017-10-12 14:39:04 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถามหน่อยครับ ตอนนี้ที่ทำคือ 1 ประเภทต่อ 1 ตารางใช่ไหมครับ ถ้าใช่ผิดนะครับ
|
 |
 |
 |
 |
Date :
2017-10-12 16:07:32 |
By :
OOP |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อาจจะทำเป็นฟังก์ชั่นแสดงรายการพอเต็มหน้ากระดาษ เป็นหมวดเดียวกัน จะดีกว่าไหม
เหมือนตัวอย่างที่ทำมาให้ดู แต่ทั้งหมดเป็นหมวดเดียวกัน ไม่ใช่ 3 หมวด
ลองศึกษาตัวอย่างข้างล่างดูนะครับ บางอย่างก็ต้องเขียนเอาเอง กำหนดค่าเอาเอง
Code (PHP)
<?php
function x($prod_ar, $st, $en){
$sum = '';
foreach($prod_ar as $id){
$sum .= ", sum(if(prod_id='$id',amount,0)) as `$id` ";
}
return "Select date_sale" . $sum . " From tablename Where date_sale between '$st' and '$en' Group by date_sale";
}
function show_table($rs){
while($ro = $rs->fetch_assoc()){
.....
.....
}
}
//////////////////////////////////////////////////////
$db = new mysqli('host','user','password', 'database');
if ($db->connect_errno) {
echo 'Connection failer<BR><a href="' . $PHP_SELF . '?' . $_SERVER ['QUERY_STRING'] . '">Refresh</a>';
exit ();
}
$db->query('SET NAMES utf8');
//////////////////////////////////////////////////////
$show_count_column = 5;
$group_product = array('RB', 'MN', 'FG');
foreach($group_product as $gp){
$prod_rs = $db->query("select prod_id from table_product_list where left(prod_id,2)= '$gp' order by prod_id");
$prod_ar = array();
while($ro = $prod_rs->fetch_assoc()){
$prod_ar[]=$ro['prod_id'];
if(count($prod_ar)==$show_count_column){
$sql=x($prod_ar, '2017-01-01', '2017-01-31');
$p_rs = $db->query($sql);
/////////////////////////
show_table($p_rs);
/////////////////////////
$prod_ar=array();
}
}
if(count($prod_ar)>0){
$sql=x($prod_ar, '2017-01-01', '2017-01-31');
$p_rs = $db->query($sql);
/////////////////////////
show_table($p_rs);
/////////////////////////
}
}
|
ประวัติการแก้ไข 2017-10-12 21:18:04 2017-10-12 21:21:23
 |
 |
 |
 |
Date :
2017-10-12 21:04:57 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอโทษจริงๆครับพี่ลืมดูรายละเอียดของรูปภาพครับที่ต้องการจะให้แสดงคือแบบนี้ครับ ในช่องของสี่เหลี่ยมสีแดงคือค่าผลรวมของสินค้าทั้งหมดในหมวดนั้นๆครับ เช่น ช่องรับ ก็จะรวมค่าของ RBC-V.1 ,RBC-V2 ,RBC-V3 ไว้ในช่องเดียวเลย ตามยอดประจำวันครับ   

|
 |
 |
 |
 |
Date :
2017-10-13 16:36:44 |
By :
Lun2560 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (SQL)
Select s.date_sale,
Sum(if(left(s.prod_id,2)='aa', b.amount,0)) as aa_in,
Sum(if(left(s.prod_id,2)='aa', s.amount,0)) as aa_out,
Sum(if(left(s.prod_id,2)='bb', b.amount,0)) as bb_in,
Sum(if(left(s.prod_id,2)='bb', s.amount,0)) as bb_out,
Sum(if(left(s.prod_id,2)='cc', b.amount,0)) as cc_in,
Sum(if(left(s.prod_id,2)='cc', s.amount,0)) as cc_out
From table_prod p
Left join sale s on p.prod_id=s.prod_id and s.date_sale between startdate and lastdate
Left join buy b on p.prod_id=b.prod_id and b.date_buy between startdate and lastdate
Group by date_sale
|
 |
 |
 |
 |
Date :
2017-10-13 17:58:26 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
พี่ครับตอนนี้ผม Sum ออกมาแล้วได้แล้วเสร็จพอได้ค่า Sum แล้วผมจะเอามา บวก คูณ หาร ยังไงครับ
แบบนี้ครับ ISSUED หาร (RECEIRE บวก ISSUED) คูณ 100 = ผลรวม
Code
<?php
$result1 = mysql_query("SELECT sum(RECEIRE) FROM customer where wrench in ('RET14I','RET15','RET16','RET17','RET18','RET19','RET20','RET21','RET22','RET23','RET24','RET25','RET26','RET27','RET28','RET29','RET30')
and DATE( SAVE ) = CURDATE( ) ") or die(mysql_error());
while ($rows1 = mysql_fetch_array($result1)) {
?>
<div class="pull-right">
<div class="span"><div class="alert alert-info"><i class="icon-credit-card icon-large"></i> INLINE-A : <?php echo $rows1['sum(RECEIRE)']; ?></div></div>
</div>
<?php }
?>
<?php
$result1 = mysql_query("SELECT SUM(ISSUED) FROM customer where wrench in ('RIT01','RIT02','RIT03','RIT04','RIT05','RIT06','RIT07','RIT08','RIT09','RIT10','RIT11','RIT12','RIT13','RIT14','RIT15','RIT16','RIT17','RIT18','RIT19','RIT20','RIT21','RIT22')
and DATE( SAVE ) = CURDATE( ) ") or die(mysql_error());
while ($rows1 = mysql_fetch_array($result1)) {
?>
<div class="pull-right">
<div class="span"><div class="alert alert-info"><i class="icon-credit-card icon-large"></i> INLINE-B : <?php echo $rows1['SUM(ISSUED)']; ?></div></div>
</div>
<?php }
?>
<?php
$result1 = mysql_query("SELECT SUM(TOTAL) FROM customer where wrench in ('RAD01','RAD02','RAD03','RAD04','RAD05','RAD06','RAD07','RAD08','RAD09','RAD10','RAD11','RAD12')
and DATE( SAVE ) = CURDATE( ) ") or die(mysql_error());
while ($rows1 = mysql_fetch_array($result1)) {
?>
<div class="pull-right">
<div class="span"><div class="alert alert-info"><i class="icon-credit-card icon-large"></i> INLINE-AD : <?php echo $rows1['SUM(TOTAL)']; ?></div></div>
</div>
<?php }
?>
|
 |
 |
 |
 |
Date :
2017-11-01 16:00:34 |
By :
Lun2560 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|