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 > [SQL][PHP] สอบถามการ Group By หน่อยครับ จะทำยังไงให้มัน Group อีกที หรือใช้ php เข้าช่วยก็ได้ (อ่านแล้วงงมีรูปด้านใน)



 

[SQL][PHP] สอบถามการ Group By หน่อยครับ จะทำยังไงให้มัน Group อีกที หรือใช้ php เข้าช่วยก็ได้ (อ่านแล้วงงมีรูปด้านใน)

 



Topic : 118615



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



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




จากตารางนี้จะเห็นว่า รหัส และชื่อสินค้า ซ้ำกันอยู่ อยากจะทำให้รวมเป็นแถวเดียว โดยแยก TEAM(รูปตาราง 3) เป็นคอลั่มๆไป G1=TEAM1, G2=TEAM2, ... (แบบรูปที่ 2) พอจะมีวิธีไหนบ้างครับ ถ้ามีคำสั่งสั้นๆโดยใช้ SQL ก็จะใช้ แต่ถ้าไม่มีจะใช้ php เข้าช่วยก็ได้ครับ

1

อยากทำเป็นแบบนี้

2



จริงๆ G1-G4 เป็นแบบนี้ ผมแค่แยก <tr></tr> มาเฉยๆ
ผมให้ G1 = TEAM 1 โดยแสดงค่าเป็นจำนวน
G2 = TEAM 2 โดยแสดงค่าเป็นจำนวน >> G3 G4 ตามลำดับ ก็จะได้ดังตารางแรกด้านบน

-



โดยก่อนหน้านี้ก็ GROUP BY มาแล้ว ($string คือ CODE column 1 ในตาราง)
Code (SQL)
SELECT  items_pj.CODE
    , items.NAME
    , T_itempj.Team_id
    , sum(selldetail.Sd_Amount)
    , items_pj.Target
    , items.RSELL_COST
    , items_pj.Per_K

FROM items_pj 
RIGHT JOIN items on (items_pj.CODE = items.CODE)
LEFT JOIN selldetail on (items.CODE=selldetail.it_code)
LEFT JOIN branch_name on (mid(selldetail.se_no,2,3) = branch_name.CODE_ID)
LEFT JOIN T_itempj on (branch_name.id=T_itempj.Br_id)

WHERE date(selldetail.Sd_TStamp) BETWEEN '".$date_start."' AND '".$date_end."'
AND items.CODE in (".$string.")
									
group by items_pj.CODE, T_itempj.Team_id
order by items_pj.Target asc



มีอะไรสอบถามเพิ่มเติมบอกได้นะครับ
ขอบคุณล่วงหน้าครับ



มาเพิ่ม code แบบเต็มๆ เพื่อท่านใดมีไอเดียเจ๋งๆจะมาลด code ที่ใช้อยู่ให้สั้นลง
Code (PHP)
				<table class="table" border='1'  bordercolor='#FFF' cellpadding='0' cellspacing='0'>
				<thead bgcolor="#00a65a" style="color:#FFFFFF;">
					<tr>
						<th style="text-align:center;vertical-align:middle">รหัส</th>
						<th style="text-align:left;vertical-align:middle">ชื่อสินค้า</th>
						<th style="text-align:center;vertical-align:middle">G1</th>
						<th style="text-align:center;vertical-align:middle">G2</th>
						<th style="text-align:center;vertical-align:middle">G3</th>
						<th style="text-align:center;vertical-align:middle">G4</th>
						<th style="text-align:center;vertical-align:middle">Target</th>
						<th style="text-align:center;vertical-align:middle">P</th>
						<th style="text-align:center;vertical-align:middle">%K</th>
					</tr>
				</thead>
				<tbody>
				<?php 
				$string = implode(",", $it_code);
				$query2 = "SELECT  items_pj.CODE
									, items.NAME
									, T_itempj.Team_id
									, sum(selldetail.Sd_Amount)
									, items_pj.Target
									, items.RSELL_COST
									, items_pj.Per_K

									FROM items_pj 
									RIGHT JOIN items on (items_pj.CODE = items.CODE)
									LEFT JOIN selldetail on (items.CODE=selldetail.it_code)
									LEFT JOIN branch_name on (mid(selldetail.se_no,2,3) = branch_name.CODE_ID)
									LEFT JOIN T_itempj on (branch_name.id=T_itempj.Br_id)

									WHERE date(selldetail.Sd_TStamp) BETWEEN '".$date_start."' AND '".$date_end."'
									AND items.CODE in (".$string.")
									
									group by items_pj.CODE, T_itempj.Team_id
									order by items_pj.Target asc";

				$ck_B = 0; $ck_C = 0;
				$sum_t1=0; $sum_t2=0; $sum_t3=0; $sum_t4=0;				
				$result2 = mysql_query ($query2);		
				while ( $row2 = mysql_fetch_array($result2) ){

					if($row2['4'] == 'B' && $ck_B == 0){
						$ck_B++;
						echo '<tr bgcolor="#EEE">';
							echo '<td></td>';
							echo '<td style="text-align:center;vertical-align:middle"><B>SALES TARGET A</B></td>';
							echo '<td style="text-align:center;vertical-align:middle">'.$sum_t1.'</td>';
							echo '<td style="text-align:center;vertical-align:middle">'.$sum_t2.'</td>';
							echo '<td style="text-align:center;vertical-align:middle">'.$sum_t3.'</td>';
							echo '<td style="text-align:center;vertical-align:middle">'.$sum_t4.'</td>';
							echo '<td></td>';
							echo '<td></td>';
							echo '<td></td>';
						echo '</tr>';	
						$sum_t1=0; $sum_t2=0; $sum_t3=0; $sum_t4=0;
					}elseif ($row2['4'] == 'C' && $ck_C == 0 ){
						$ck_C++;
						echo '<tr bgcolor="#EEE">';
							echo '<td></td>';
							echo '<td style="text-align:center;vertical-align:middle"><B>SALES TARGET B</B></td>';
							echo '<td style="text-align:center;vertical-align:middle">'.$sum_t1.'</td>';
							echo '<td style="text-align:center;vertical-align:middle">'.$sum_t2.'</td>';
							echo '<td style="text-align:center;vertical-align:middle">'.$sum_t3.'</td>';
							echo '<td style="text-align:center;vertical-align:middle">'.$sum_t4.'</td>';
							echo '<td></td>';
							echo '<td></td>';
							echo '<td></td>';
						echo '</tr>';					
						$sum_t1=0; $sum_t2=0; $sum_t3=0; $sum_t4=0;
					}else{
						echo '<tr>';
							echo '<td style="text-align:center;vertical-align:middle">'.$row2['0'].'</td>';
							echo '<td style="text-align:left;vertical-align:middle">'.$row2['1'].'</td>';

							if($row2['2']==1){
								$sum_t1 += $row2['3']*$row2['5'];
								echo '<td style="text-align:center;vertical-align:middle">'.$row2['3'].'</td>';
								echo '<td style="text-align:center;vertical-align:middle"></td>';
								echo '<td style="text-align:center;vertical-align:middle"></td>';
								echo '<td style="text-align:center;vertical-align:middle"></td>';
							}elseif($row2['2']==2){
								$sum_t2 += $row2['3']*$row2['5'];
								echo '<td style="text-align:center;vertical-align:middle"></td>';
								echo '<td style="text-align:center;vertical-align:middle">'.$row2['3'].'</td>';
								echo '<td style="text-align:center;vertical-align:middle"></td>';
								echo '<td style="text-align:center;vertical-align:middle"></td>';
							}elseif($row2['2']==3){
								$sum_t3 += $row2['3']*$row2['5'];
								echo '<td style="text-align:center;vertical-align:middle"></td>';
								echo '<td style="text-align:center;vertical-align:middle"></td>';
								echo '<td style="text-align:center;vertical-align:middle">'.$row2['3'].'</td>';
								echo '<td style="text-align:center;vertical-align:middle"></td>';
							}elseif($row2['2']==4){
								$sum_t4 += $row2['3']*$row2['5'];
								echo '<td style="text-align:center;vertical-align:middle"></td>';
								echo '<td style="text-align:center;vertical-align:middle"></td>';
								echo '<td style="text-align:center;vertical-align:middle"></td>';
								echo '<td style="text-align:center;vertical-align:middle">'.$row2['3'].'</td>';
							}
							echo '<td style="text-align:center;vertical-align:middle">'.$row2['4'].'</td>';
							echo '<td style="text-align:center;vertical-align:middle">'.$row2['5'].'</td>';
							echo '<td style="text-align:center;vertical-align:middle">'.$row2['6'].'</td>';
						echo '</tr>';
					}				
				}

						echo '<tr bgcolor="#EEE">';
							echo '<td></td>';
							echo '<td style="text-align:center;vertical-align:middle"><B>SALES TARGET C</B></td>';
							echo '<td style="text-align:center;vertical-align:middle">'.$sum_t1.'</td>';
							echo '<td style="text-align:center;vertical-align:middle">'.$sum_t2.'</td>';
							echo '<td style="text-align:center;vertical-align:middle">'.$sum_t3.'</td>';
							echo '<td style="text-align:center;vertical-align:middle">'.$sum_t4.'</td>';
							echo '<td></td>';
							echo '<td></td>';
							echo '<td></td>';
						echo '</tr>';					
				?>
				</tbody>
				</table>





TABLE ต่างๆ คร่าวๆ
br
itp
i

ตาราวนี้ตรง P คือค่า items.RSELL_COST ครับ จริงๆต้องกรอกไว้ แต่นี่กำลัง test อยู่เลยไม่ได้ใส่หมด
pj
se



Tag : PHP, MySQL









ประวัติการแก้ไข
2015-08-29 16:33:05
2015-08-29 16:41:47
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-08-29 16:29:45 By : nPointXer View : 1784 Reply : 2
 

 

No. 1



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



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

Code (PHP)
$query2 = "SELECT  items_pj.CODE
	, items.NAME
	, T_itempj.Team_id
	, sum(selldetail.Sd_Amount) as Amt
	, items_pj.Target
	, items.RSELL_COST
	, items_pj.Per_K
	FROM items_pj 
	RIGHT JOIN items on (items_pj.CODE = items.CODE)
	LEFT JOIN selldetail on (items.CODE=selldetail.it_code)
	LEFT JOIN branch_name on (mid(selldetail.se_no,2,3) = branch_name.CODE_ID)
	LEFT JOIN T_itempj on (branch_name.id=T_itempj.Br_id)
	WHERE date(selldetail.Sd_TStamp) BETWEEN '".$date_start."' AND '".$date_end."'

	AND items.CODE in (".$string.")

	group by items_pj.CODE, T_itempj.Team_id
	order by items_pj.Target asc";
$result2 = mysql_query ($query2); $ar = array();
while ( $row2 = mysql_fetch_array($result2) ){
	$key=$row2['code'];
	if(!isset($ar[$key])){
		$ar[$key]=array(
			'id'=>$key, 
			'name'=$row2['NAME'], 
			'target'=>$row2['Target'], 
			'p'=>$row2['RSELL_COST'], 
			'k'=>$row2['Per_K'] 
		);
	}
	$ar[$key]['G'.$row2['Team_id']]=$row2['Amt'];
}
echo '<pre>', print_r($ar, true), '</pre>';


ส่วนที่เหลือคงง่ายแล้วมั้งครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-29 17:09:55 By : NewbiePHP
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-08-29 17:09:55
รายละเอียดของการตอบ ::
แก้บัคใน code คุณ NewbieXYZ นิดหน่อยก็ผ่านเลย ได้ข้อมูลตามที่ต้องการเลยครับ
ขอบคุณมากครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-29 17:58:42 By : nPointXer
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : [SQL][PHP] สอบถามการ Group By หน่อยครับ จะทำยังไงให้มัน Group อีกที หรือใช้ php เข้าช่วยก็ได้ (อ่านแล้วงงมีรูปด้านใน)
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 อัตราราคา คลิกที่นี่