หัวข้อ: query access ช่วยดูให้หน่อยครับ งง เริ่มหัวข้อโดย: thaikorn04 ที่ 10 พฤษภาคม 2012, 16:30:36 ผมมีอยู่ตารางดังนี้(ยกตัวอย่างครับ)
ตาราง A มี 3 DATE ID1 ID2 ค่า 01/05/55 A001 01 100 02/05/55 A001 02 80 03/05/55 A002 70 04/05/55 A003 01 20 05/05/55 A003 01 40 .............................................. ตาราง B มี 3 ID1 ID2 NAME A001 หมู A001 01 เห็ด A001 02 เป็ด A002 ไก่ A003 แมว A003 01 ลิง .......................................................... ผลลัพธ์ที่ต้องคือ A001 หมู A001 01 เห็ด 100 A001 02 เป็ด 80 A002 ไก่ 70 A003 แมว A003 01 ลิง 60 .......................................................... คำถามครับ --ใช้ Query ใน access 1.ทำอย่างไงให้ได้แบบผลลัพธ์ครับผมทำไม่ได้..งมมาหลายวันแล้วไม่ได้สักที - ที่มันติดก็คือมันเหมือนใช้คีย์หลัก 2 key ID1,ID2 เวลาเลือกมาทั้งคู่นำมาโยงกันผลลัพธ์มันไม่ได้ที่ต้องการมันจะได้เฉพาะค่าที่ทั้งสองมันเหมือนกัน - เวลาเลือกเอาเฉพาะ ID1,ID2 เลือกโยงคีย์อันเดียว..ใันก็ไม่ได้อีก...งงงง :wanwan017: หัวข้อ: Re: query access ช่วยดูให้หน่อยครับ งง เริ่มหัวข้อโดย: fogza ที่ 10 พฤษภาคม 2012, 18:11:43 ถ้าจะเอาตามตัวอย่างที่ยกมาก็ query 2 รอบใช้ตาราง B เป็นหลัก
รอบที่ 1 โค๊ด: $B = "SELECT * FROM B"; โค๊ด: $A = "SELECT ค่า FROM A WHERE ID1 = {$result_B[ID1]} AND ID2 = {$result_B[ID2]}"; หัวข้อ: Re: query access ช่วยดูให้หน่อยครับ งง เริ่มหัวข้อโดย: arthorn796 ที่ 10 พฤษภาคม 2012, 19:54:51 อ่า ตามความคิดผมไม่น่าจะ Query ได้นะ
ถ้าได้คงต้องเทพมาก หรือไม่ก็เส้นผมบังภูเขา แต่ถ้าเป็นผม ผมจะเอา Table ที่เป็น Master ของ ID เนี่ย มาช่วยเป็น Main แล้วเอา Table พวกนี้ Join เข้าไป เพราะดูจาก Table ที่มีแล้ว ไม่มี Primary Key ที่จะอ้างเป็นหลักได้เลย ตามความคิดผมนะครับ ผิดพลาดประการใด ก็มั่วๆไปนะ :P :P หัวข้อ: Re: query access ช่วยดูให้หน่อยครับ งง เริ่มหัวข้อโดย: thaikorn04 ที่ 10 พฤษภาคม 2012, 20:41:07 ดันครับ :P
หัวข้อ: Re: query access ช่วยดูให้หน่อยครับ งง เริ่มหัวข้อโดย: Jupitor ที่ 10 พฤษภาคม 2012, 20:47:39 table 1 primary key คืออะไร
table 2 primary key คืออะไร forienge คีย์คืออะไร คำตอบคือ ไม่มีเลย แบบนี้เขียน query ไม่ได้ครับ ลองออกแบบ table ใหม่ก่อนดีกว่า ถ้าแก้ไข filed ไม่ได้ ก็สร้าง field ใหม่เอาไว้เป็น primary key และ forienge คีย์ครับ หัวข้อ: Re: query access ช่วยดูให้หน่อยครับ งง เริ่มหัวข้อโดย: thaikorn04 ที่ 10 พฤษภาคม 2012, 22:55:30 table 1 primary key คืออะไร table 1 primary key ไม่มีครับเป็นข้อมูลรายวันครับtable 2 primary key คืออะไร forienge คีย์คืออะไร คำตอบคือ ไม่มีเลย แบบนี้เขียน query ไม่ได้ครับ ลองออกแบบ table ใหม่ก่อนดีกว่า ถ้าแก้ไข filed ไม่ได้ ก็สร้าง field ใหม่เอาไว้เป็น primary key และ forienge คีย์ครับ table 2 primary key คือID1และID2 ครับ ........................................... ถ้าแก้ไข filed ไม่ได้ ก็สร้าง field ใหม่เอาไว้เป็น primary key และ forienge คีย์ครับ - แก้ไม่ได้ครับ..มันเป็นข้อมูลดั้งเดิมครับ..ผมผู้มาทีหลังครับ..และก็เก็บมาหลายปีแล้วครับ หัวข้อ: Re: query access ช่วยดูให้หน่อยครับ งง เริ่มหัวข้อโดย: Extra Cash ที่ 10 พฤษภาคม 2012, 23:06:28 ลองตามนี้ครับ
SELECT ID1, ID2, MAX(NNAME) AS NAME, SUM(VAL ) AS [VALUE] FROM ( SELECT B.ID1, B.ID2, B.NNAME, VAL FROM A RIGHT JOIN B ON A.ID1 = B.ID1 AND A.ID2 = B.ID2 UNION SELECT A.ID1, A.ID2, B.NNAME, VAL FROM A LEFT JOIN B ON (A.ID2 = B.ID2) AND (A.ID1 = B.ID1) WHERE A.ID2 IS NULL ) GROUP BY ID1, ID2 หัวข้อ: Re: query access ช่วยดูให้หน่อยครับ งง เริ่มหัวข้อโดย: thaikorn04 ที่ 11 พฤษภาคม 2012, 08:14:23 ลองตามนี้ครับ ลองแล้วครับแต่ยังไม่ได้ครับ..เกือบได้ครับSELECT ID1, ID2, MAX(NNAME) AS NAME, SUM(VAL ) AS [VALUE] FROM ( SELECT B.ID1, B.ID2, B.NNAME, VAL FROM A RIGHT JOIN B ON A.ID1 = B.ID1 AND A.ID2 = B.ID2 UNION SELECT A.ID1, A.ID2, B.NNAME, VAL FROM A LEFT JOIN B ON (A.ID2 = B.ID2) AND (A.ID1 = B.ID1) WHERE A.ID2 IS NULL ) GROUP BY ID1, ID2 ค่าของ A003 01 มันไม่ค่ามาครับ แต่ยังไงก็ขอบคุณมากครับ....เดี๊ยวผมไล่บวก +1 ให้ทุกคนครับ หัวข้อ: Re: query access ช่วยดูให้หน่อยครับ งง เริ่มหัวข้อโดย: thaikorn04 ที่ 11 พฤษภาคม 2012, 09:32:09 ได้บทสรุปแล้วครับ...สร้างฟิวใหม่เพิ่มทั้งสองฝั่ง..โดยฟิวใหม่เอา ID1+ID2...ขอบคุณครับทุกความคิดเห็น
หัวข้อ: Re: query access ช่วยดูให้หน่อยครับ งง เริ่มหัวข้อโดย: soonnew ที่ 16 พฤษภาคม 2012, 18:21:14 น่าจะใช้ table1 right join table2
หัวข้อ: Re: query access ช่วยดูให้หน่อยครับ งง เริ่มหัวข้อโดย: MeenyFancy ที่ 16 พฤษภาคม 2012, 19:05:00 โทษทีครับเพิ่งเห็นว่าเป็นข้อมูลเก่า
SELECT * FROM TableA Inner Join TableB on TableA.ID1 = TableB.ID1 แค่นี้ก็น่าจะออกนะครับ |