พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com
Databases help / แนะนำคำสัง sql ด้วยค่ะ
moonoi
moonoi
Wed 20 Feb 2008 18:55:40

 ทำระบบบันทึกรายจ่าย ไม่ทราบว่าจะเขียน sql อย่างไรเพื่อหาค่าประเภทรายจ่ายที่เพิ่มขึ้นหรือลดลงติดต่อกัน 2  เดือนขึ้นไป  เช่น

เดือนนี้เป็นเดือนมี่นารายจ่ายค่าอาหาร 300 บาท แล้วต้องการเอาค่านี้ไปเทียบกับค่าอาหารเดือนกุมภา เช่น 200 บาท  และเอาค่าอาหารนี้ไปเปรียบกับค่าอาหารเดือนมกราคมเช่น  100 บาท  แสดงว่ารายจ่ายเพิ่มขึ้นติดต่อกัน 2 เดือนขึ้นไปนับจากเดือนมกรา-เดือนมีนา   แนะนำ sql หน่อยนะคะ เขียนไม่ถูกจริงๆ

ปล. sql  เวอร์ชันที่ใช้อยู่ใช้  subquery ไม่ได้ค่ะ   ขอ sql ที่ไม่ใช้  subquery  หรือเขียนโคดอื่นประกอบก็ได้ขอแค่ให้ได้คำตอบ 

webmaster
webmaster
Fri 22 Feb 2008 00:04:06

คุณต้องให้ query ในการ SUM() แล้วก็ GROUP BY แต่ละเดือน แล้วหาความแตกต่างว่าเดือนถัดไปหรือก่อนหน้านั้นต่างกับเกินที่กำหนดหรือไม่

ถ้าไม่ให้งงสำหรับมือใหม่ก็ SUM() โดย GROUP BY แต่ละเดือน จากนั้นก็เอามาคำนวนด้วยภาษาที่คุณถนัดก็ได้ครับ แต่ถ้าจะให้ DBMS ทำทั้งหมดต้องสร้าง Sub-Query ประมาณ 3 ตัวมาเปรียบเทียบครับ

moonoi
moonoi
Fri 22 Feb 2008 09:01:26

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

                                              ค่าอาหาร  500           ค่าอาหาร   800
                                              ค่าไฟ  300                   ค่าไฟ      400
??? ต้องการเอาค่าอาหารและค่าไฟของเดือนมีนาไปเปรียบเทียบกับค่าอาหารและค่าไฟของเดือนกุมานะค่ะ   ค่าอาหารเปรียบเทียบค่าอาหาร  ค่าไฟเปรียบเทียบค่าไฟ

                                 

webmaster
webmaster
Fri 22 Feb 2008 15:18:43
เอาวิธีที่สามารถทำได้ง่ายๆก็ คุณทำการกาค่าใช้จ่ายโดยแยกประเภทในแต่ละเดือน ตามที่ยกตัวอย่างมา ก็เอามาเทียบด้วยภาษาที่คุณถนัดว่ามาการเปลี่ยนแปลงไปเท่าใด

การ query อยู่ที่ลักษณะการออกแบบตารางและความสัมพันธ์ของคุณเองครับ
moonoi
moonoi
Sat 23 Feb 2008 04:17:49


$sql=select * fom.......
$res1 = mysql_query( $dssql) or die (mysql_error());
while ($row=mysql_fetch_row($res1))
{
print ("$row[0]   $row[1]" );
}

จากการ query ต้องการเอาตัวแปรมาเก็บค่า $row[0],$row[1]ไม่ทราบว่าต้องเขียนโคดยังไงคะ แล้วพอเอาตัวแปรมาเก็บค่าแล้วจะอ้างถึงค่าของตัวแปรยังไง เช่น $row[0] มี 2 ค่าคือ 101 และ
102 เราจะอ้างยังไงว่าจะเอาตัวแปรตัวที่ 1(101) หรือตัวแปรตัวที่ 2(102)
ไม่ค่อยเข้าใจเรื่องอาร์เรย์นะค่ะและ พื้นฐานเขียนโปรแกรมไม่ดีด้วย
ขอความกรุณาท่านผู้รู้ยกตัวอย่างโคดให้ดูหน่อยนะคะ ขอบคุณมากค่ะ

webmaster
webmaster
Tue 26 Feb 2008 10:43:52
การ fetch ข้อมูลจาก mysql resource นั้นควรใช้ mysql_fetch_array(), mysql_fetch_assoc() มากกว่าครับ ให้ลองอ่านเรื่อง array ของ php ด้วยครับ
moonoi
moonoi
Wed 27 Feb 2008 08:30:44

อยากหาข้อมูลรายจ่ายย้อนหลังจากเดือนปัจจุบันไป 2 เดือนนะค่ะ  ไม่ทราบว่าจะเขียนโคดยังไงคะ  เก็บข้อมูลวัน/เดือน/ปีในตารางเป็นชนิด date นะค่ะ  เช่นเดือนนี้เป็นเดือน  02-2008 ย้อนหลังไป 2 เดือนก็จะเป็นเดือน 02-2007 แล้วต้องการหาค่าข้อมูลในเดือน  02-2007 นะค่ะ  แนะนำโคดหน่อยค่ะ ขอบคุณมาก

webmaster
webmaster
Thu 28 Feb 2008 11:38:22
ถ้าเป็นชนิด date, datetime, timestamp สามารถใช้ DATE_ADD(), DATE_SUB() ในการเปรียบเทียบได้เลยครับ ในกระทู้เก่าๆก็มีครับ
Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login