Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > สอบถามเรื่องการหาส่วนต่างจากการ Sum ข้อมูลรายรับ-รายจ่ายเป็นรายเดือนในตารางค่ะ



 

สอบถามเรื่องการหาส่วนต่างจากการ Sum ข้อมูลรายรับ-รายจ่ายเป็นรายเดือนในตารางค่ะ

 



Topic : 130572



โพสกระทู้ ( 13 )
บทความ ( 0 )



สถานะออฟไลน์




มีข้อมูลรายเดือนเป็นตารางค่ะ อยากจะหาส่วนต่างระหว่างรายรับ กับรายจ่าย
โดยทำการ query ข้อมูลออกมาเป็นรายเดือนได้แล้ว
หากจะนำข้อมูลมาหาส่วนต่างกัน ต้อง query ข้อมูลแบบไหนค่ะ
คิดมาหลายวันแล้ว รบกวนผู้รู้ช่วยชี้แนะด้วยค่ะ
ขอบคุณค่ะ

ตัวอย่าง navicat

ตัวอย่างหน้าเว็บ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-03-16 11:39:30 By : pum374 View : 1420 Reply : 11
 

 

No. 1



โพสกระทู้ ( 68 )
บทความ ( 0 )



สถานะออฟไลน์


ส่วนต่างของเเต่ละเดือนหรือ ยังไงคับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-03-16 11:48:10 By : newalway
 


 

No. 2



โพสกระทู้ ( 68 )
บทความ ( 0 )



สถานะออฟไลน์


ถ้าส่วนต่างรายรับรายจ่าย ได้ค่ามา ก็เอามาลบกัน ทำในส่วนของโปรแกรมมิ่งก็ได้ครับ อย่าทำใน sql เลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-03-16 11:57:42 By : newalway
 

 

No. 3



โพสกระทู้ ( 13 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : newalway เมื่อวันที่ 2018-03-16 11:48:10
รายละเอียดของการตอบ ::
ค่ะ หาค่าส่วนต่างของรายเดือนค่ะ ในส่วนของโปรแกรมมิ่ง ขอคำแนะนำด้วยได้มั้ยคะ ตอนนี้งงหนักมากค่ะ ขอบคุณค่ะ



ประวัติการแก้ไข
2018-03-16 12:08:28
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-03-16 12:07:30 By : pum374
 


 

No. 4



โพสกระทู้ ( 68 )
บทความ ( 0 )



สถานะออฟไลน์


ขอดูโค้ด หน้าดึงข้อมูลมาใส่ในตารางด้านล่างแบบในรูปหน่อยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-03-16 13:33:23 By : newalway
 


 

No. 5



โพสกระทู้ ( 68 )
บทความ ( 0 )



สถานะออฟไลน์


อีกนิดนึงคับ ผลต่างเอามาใส่ช่องสีม่วงๆใช่ไหมคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-03-16 13:35:15 By : newalway
 


 

No. 6



โพสกระทู้ ( 13 )
บทความ ( 0 )



สถานะออฟไลน์


ใช่ค่ะ ใส่ผลต่างในช่องสีม่วงค่ะ

<?php
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("finreport");
mysql_query("SET NAMES UTF8");
$strSQL = "
SELECT
fin_type.Fin_type,
fin_type.Fin_type_name,
sum(planfin61.PlanFin61)Planfin161,
sum(oct60.Oct60)as Oct60,
sum(nov60.Nov60)as Nov60,
sum(dec60.Dec60)as Dec60,
sum(jan61.Jan61)as Jan61
FROM
account
INNER JOIN fin_code ON fin_code.Fin_ID = account.Fin_ID
INNER JOIN fin_group ON fin_group.Group_ID = account.Group_ID
INNER JOIN fin_type ON fin_type.Fin_type = account.Fin_type
INNER JOIN oct60 ON oct60.Acc_ID = account.Acc_ID
INNER JOIN planfin61 ON planfin61.Acc_ID = account.Acc_ID
INNER JOIN nov60 ON nov60.Acc_ID = account.Acc_ID
INNER JOIN dec60 ON dec60.Acc_ID = account.Acc_ID
INNER JOIN jan61 ON jan61.Acc_ID = account.Acc_ID

group by Fin_type.Fin_type desc

";


$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");


?>
<div class="body table-responsive">

<table width="94%" class="table table-bordered">
<thead>
<tr class="bg-pink">

<th width="23%"><div align="center">รวมรายรับ</div></th>
<th width="17%"><div align="center">แผนPlanFin61</div></th>
<th width="11%"><div align="center">ต.ค.60</div></th>
<th width="12%"><div align="center">พ.ย.</div></th>
<th width="14%"><div align="center">ธ.ค.</div></th>
<th width="14%"><div align="center">ม.ค.61</div></th>
</tr>
</thead>
<tbody>

<?php
$i =0;
while($objResult = mysql_fetch_array($objQuery))
{
$i = $i + 1;
?>
<tr>
<th scope="row"><?php echo ($objResult["Fin_type_name"]);?></th>

<td><div align="center"><?php echo number_format($objResult["Planfin161"]);?></div></td>
<td><div align="center"><?php echo number_format($objResult["Oct60"]);?></div></td>
<td><div align="center"><?php echo number_format($objResult["Nov60"]);?></div></td>
<td><div align="center"><?php echo number_format($objResult["Dec60"]);?></div></td>
<td><div align="center"><?php echo number_format($objResult["Jan61"]);?></div></td>

</tr>
<? } ?>

ขอบคุณมากค่ะ


ประวัติการแก้ไข
2018-03-16 13:46:18
2018-03-16 13:48:25
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-03-16 13:45:11 By : pum374
 


 

No. 7



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


การออกแบบตารางรายละเอียดแต่ละเดีือนควรมี fieldname เหมือนกัน
แยกที่ชื่อตารางก็พอแล้ว ทำแบบนี้ อาจยุ่งยากในการสร้าง funcion สำหรับคิวรี่ใหม่ทุกเดือน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-03-16 14:01:00 By : Chaidhanan
 


 

No. 8



โพสกระทู้ ( 13 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 7 เขียนโดย : Chaidhanan เมื่อวันที่ 2018-03-16 14:01:00
รายละเอียดของการตอบ ::
่ขอบคุณ คุณ Chaidhanan มากค่ะ
ตอนนี้ design table ใหม่แล้ว แล้วใช้ sql crosstab ข้อมูลค่ะ
แต่ตอนนี้ติดในส่วนของ การคิดส่วนต่างระหว่างเดือน ค่ะ
รบกวนผู้รู้อีกนิดค่ะ
ขอบคุณมากค่ะ

<?php
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("finreport");
mysql_query("SET NAMES UTF8");
$strSQL = "
SELECT
fin_type.Fin_type,
fin_type.Fin_type_name,
Sum(IF(AMonth = 0 ,Cost ,0)) AS Planfin61,
Sum(IF(AMonth = 10 ,Cost ,0)) AS Oct60,
Sum(IF(AMonth = 11 ,Cost ,0)) AS Nov60,
Sum(IF(AMonth = 12 ,Cost ,0)) AS Dec60,
Sum(IF(AMonth = 1 ,Cost ,0)) AS Jan61
FROM
detail
INNER JOIN account ON account.Acc_ID = detail.Acc_ID
INNER JOIN fin_type ON account.Fin_type = fin_type.Fin_type
INNER JOIN fin_code ON fin_code.Fin_ID = account.Fin_ID

GROUP BY fin_type.Fin_type

";


$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");


?>
<div class="body table-responsive">

<table width="94%" class="table table-bordered">
<thead>
<tr class="bg-pink">

<th width="23%"><div align="center">รวมรายรับ</div></th>
<th width="17%"><div align="center">แผนPlanFin61</div></th>
<th width="11%"><div align="center">ต.ค.60</div></th>
<th width="12%"><div align="center">พ.ย.</div></th>
<th width="14%"><div align="center">ธ.ค.</div></th>
<th width="14%"><div align="center">ม.ค.61</div></th>
</tr>
</thead>
<tbody>

<?php
$i =0;
while($objResult = mysql_fetch_array($objQuery))
{
$i = $i + 1;
?>
<tr>
<th scope="row"><?php echo ($objResult["Fin_type_name"]);?></th>

<td><div align="center"><?php echo number_format($objResult["Planfin61"]);?></div></td>
<td><div align="center"><?php echo number_format($objResult["Oct60"]);?></div></td>
<td><div align="center"><?php echo number_format($objResult["Nov60"]);?></div></td>
<td><div align="center"><?php echo number_format($objResult["Dec60"]);?></div></td>
<td><div align="center"><?php echo number_format($objResult["Jan61"]);?></div></td>

</tr>
<? } ?>



<tr class="bg-purple">
<th scope="row">&nbsp;</th>
<td>&nbsp;</td>



<td>&nbsp;</td>
<td><strong></strong></td>
<td><strong></strong></td>
<td><strong></strong></td>
<td><strong></strong></td>

</tr>
</tbody>
</table>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-03-19 10:13:33 By : pum374
 


 

No. 9



โพสกระทู้ ( 432 )
บทความ ( 1 )



สถานะออฟไลน์
Blogger

[font=Verdana] แนะแนว [/font]
1. SELECT * FROM รายรับ WHERE ...... $SQL1
1.1 <table>
2. SELECT * FROM รายจ่าย WHERE ...... $SQL2

3.mysql_fetch_array($SQL1)

3.mysql_fetch_array($SQL2)

$rowNew = Row[รายรับ ] - Row[รายจ่าย ] ;
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-03-19 11:47:01 By : Hararock
 


 

No. 10



โพสกระทู้ ( 432 )
บทความ ( 1 )



สถานะออฟไลน์
Blogger

หรือ ไป Create view รายรับ และ Create view รายจ่าย แยกเป็น 2 Table โดย WHERE แบบเดี่ยวกัน
แล้วค่อย มา fetch - กัน และ ถ้าอยาก เอาผลต่างไป Insert ก็ได้
Code (PHP)
if(isset($_POST["Save"]))
{
do code insert ........

}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-03-19 11:52:56 By : Hararock
 


 

No. 11



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


เปลี่ยนชื่อ oct60 เป็น am0
เปลี่ยนชื่อ nov60 เป็น am1
เปลี่ยนชื่อ dec60 เป็น am2
เปลี่ยนชื่อ jan61 เป็น am3
ใช้ตัวเลขในการอ้างอิง
Code (PHP)
$i =0;
$ttl=array(0,0,0,0);
while($objResult = mysql_fetch_assoc($objQuery))
{
  $ft=($objResult['fintype']==1);
  foreach($ttl as $key=>$value){
    $ttl[$key]+=$objResult['am'.$key] * ($ft? 1 : -1) ;
  }
  $i = $i + 1;
  ...
}
print_r($ttl); // ประยุกต์เอาหน่อย


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-03-19 15:58:19 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามเรื่องการหาส่วนต่างจากการ Sum ข้อมูลรายรับ-รายจ่ายเป็นรายเดือนในตารางค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่