กระทู้เก่าบอร์ด อ.Yeadram
3,317 10
URL.หัวข้อ /
URL
Query นับ จำนวน By mat
ใน excel เขียนด้วยสูตรนี้
Mat สูตร ผล
A =COUNTIF($C$6:C6,C6) 1
A =COUNTIF($C$6:C7,C7) 2
A =COUNTIF($C$6:C8,C8) 3
B =COUNTIF($C$6:C9,C9) 1
B =COUNTIF($C$6:C10,C10) 2
C =COUNTIF($C$6:C11,C11) 1
C =COUNTIF($C$6:C12,C12) 2
C =COUNTIF($C$6:C13,C13) 3
D =COUNTIF($C$6:C14,C14) 1
E =COUNTIF($C$6:C15,C15) 1
ใน Access ลองทำ query
SELECT Mat, (select count(mat) from TableA as AA where AA.mat = TableA.mat) AS ผล
FROM TableA;
แล้วผลไม่ได้ตามต้องการครับ
ต้องเขียน query อย่างไรหรือครับ
ขอบคุณครับ
Mat สูตร ผล
A =COUNTIF($C$6:C6,C6) 1
A =COUNTIF($C$6:C7,C7) 2
A =COUNTIF($C$6:C8,C8) 3
B =COUNTIF($C$6:C9,C9) 1
B =COUNTIF($C$6:C10,C10) 2
C =COUNTIF($C$6:C11,C11) 1
C =COUNTIF($C$6:C12,C12) 2
C =COUNTIF($C$6:C13,C13) 3
D =COUNTIF($C$6:C14,C14) 1
E =COUNTIF($C$6:C15,C15) 1
ใน Access ลองทำ query
SELECT Mat, (select count(mat) from TableA as AA where AA.mat = TableA.mat) AS ผล
FROM TableA;
แล้วผลไม่ได้ตามต้องการครับ
ต้องเขียน query อย่างไรหรือครับ
ขอบคุณครับ
10 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R03877
ลองแล้ว ได้ผลไม่ตรงตามความต้องการครับ
Mat Result
A 3
B 2
C 3
D 1
E 1
ครับ อยากได้แบบ
Mat Result
A 1
A 2
A 3
B 1
B 2
C 1
C 2
C 3
D 1
E 1
Mat Result
A 3
B 2
C 3
D 1
E 1
ครับ อยากได้แบบ
Mat Result
A 1
A 2
A 3
B 1
B 2
C 1
C 2
C 3
D 1
E 1
3 @R03878
ค้น running sum ครับ หรือ sub query ครับ
ในเว็บบอร์ดนี่แหละ แล้วเอาไปประยุกต์
ขออภัยด้วยครับ อ่านโจกท์ไม่ดีเอง ตอบไวไปหน่อย
ในเว็บบอร์ดนี่แหละ แล้วเอาไปประยุกต์
ขออภัยด้วยครับ อ่านโจกท์ไม่ดีเอง ตอบไวไปหน่อย
4 @R03884
ค้นและลองทำดูแล้วครับ
ได้ SELECT Mat, (select count(mat) from TableA as AA where AA.mat = TableA.mat) AS ผล
FROM TableA;
มา แต่ก็ยังไม่ตรงตามความต้องการครับ
ทดลองต่อไป
ได้ SELECT Mat, (select count(mat) from TableA as AA where AA.mat = TableA.mat) AS ผล
FROM TableA;
มา แต่ก็ยังไม่ตรงตามความต้องการครับ
ทดลองต่อไป
5 @R03885
- ด้วยโครงสร้างข้อมูลแบบนี้ ถ้าทำใน Query ด้วย SQL Statement ล้วนๆ ทำไม่ได้หรอกครับ ไม่ต้องไปลอง ยกเว้นคุณจะมีฟิลด์อื่นที่ใช้เรียงลำดับของ Mat ได้เพิ่มมาอีกฟิลด์นึง ก็พอทำได้
- ด้วยโครงสร้างข้อมูลแบบนี้ ถ้าทำใน Form ก็อาจทำได้ แต่ยากเหมือนกัน
- ด้วยโครงสร้างข้อมูลแบบนี้ ถ้าทำใน Report อันนี้ทำได้ไม่ยาก โดยการใช้ Running Sum property
- ไม่ก็ต้องสร้างฟิลด์ที่เก็บลำดับที่เอาไว้ แล้วรัน VBA โค้ดเพื่อสร้างลำดับที่ขึ้นมาภายหลังอีกที
- ด้วยโครงสร้างข้อมูลแบบนี้ ถ้าทำใน Form ก็อาจทำได้ แต่ยากเหมือนกัน
- ด้วยโครงสร้างข้อมูลแบบนี้ ถ้าทำใน Report อันนี้ทำได้ไม่ยาก โดยการใช้ Running Sum property
- ไม่ก็ต้องสร้างฟิลด์ที่เก็บลำดับที่เอาไว้ แล้วรัน VBA โค้ดเพื่อสร้างลำดับที่ขึ้นมาภายหลังอีกที
6 @R03891
ต้องเพิ่มโครงสร้างข้อมูลแบบไหน ถึงจะใช้ Query ในการแสดงผลตามต้องการได้หรือครับ
ผมเคยลองใช้ Auto number ในการเรียงลำดับ Mat แล้วแต่ก็ยังมองภาพไ่ม่ออกว่าจะเอาไปใช้ได้ยังไงครับ
ขอบคุณสำหรับคำตอบมาก ๆ ครับ
ผมเคยลองใช้ Auto number ในการเรียงลำดับ Mat แล้วแต่ก็ยังมองภาพไ่ม่ออกว่าจะเอาไปใช้ได้ยังไงครับ
ขอบคุณสำหรับคำตอบมาก ๆ ครับ
7 @R03892
เอาแบบโจทย์จริง ที่ผมจะเอาไปใช้แล้วกันครับ เผื่อจะมีวิธีอื่นครับ
ID Mat Part
1 A Aa
2 A Ab
3 A Ac
4 B Ba
5 B Bb
6 C Ca
7 C Cb
8 C Cc
9 D Da
10 E Ea
คราวนี้ผมอยากได้ Query Crosstab เพื่อแสดงผลแบบ
Mat 1 2 3
A Aa Ab Ac
B Ba Bb
C Ca Cb Cc
D Da
E Ea
แต่ Crosstab ค่า value มันต้องเป็นตัวเลขด้วยข้อมูลที่มีอยู่มันทำไม่ได้
ผมก็เลยต้องเพิ่ม Column Result ขึ้นมาเพื่อนำไปทำ Column ใน Cross tab แล้วเอา ID ไปเป็น value แทนก็จะได้แสดงผลแบบ
Mat 1 2 3
A 1 2 3
B 4 5
C 6 7 8
D 9
E 10
เมื่อได้แบบนี้แล้วก็น่าจะไปทำต่อให้ได้ผลตามที่ต้องการแบบแรกได้ครับ
ปัญหาคือผมใช้ Query ในการทำ Result ไม่ได้ต้องไปทำใน Excel แล้วมา Update ใน Access ติดปัญหานี้ก็เลยนำมาถามครับ
ID Mat Part
1 A Aa
2 A Ab
3 A Ac
4 B Ba
5 B Bb
6 C Ca
7 C Cb
8 C Cc
9 D Da
10 E Ea
คราวนี้ผมอยากได้ Query Crosstab เพื่อแสดงผลแบบ
Mat 1 2 3
A Aa Ab Ac
B Ba Bb
C Ca Cb Cc
D Da
E Ea
แต่ Crosstab ค่า value มันต้องเป็นตัวเลขด้วยข้อมูลที่มีอยู่มันทำไม่ได้
ผมก็เลยต้องเพิ่ม Column Result ขึ้นมาเพื่อนำไปทำ Column ใน Cross tab แล้วเอา ID ไปเป็น value แทนก็จะได้แสดงผลแบบ
Mat 1 2 3
A 1 2 3
B 4 5
C 6 7 8
D 9
E 10
เมื่อได้แบบนี้แล้วก็น่าจะไปทำต่อให้ได้ผลตามที่ต้องการแบบแรกได้ครับ
ปัญหาคือผมใช้ Query ในการทำ Result ไม่ได้ต้องไปทำใน Excel แล้วมา Update ใน Access ติดปัญหานี้ก็เลยนำมาถามครับ
8 @R03894
TRANSFORM First(Q.part) AS FirstOfpart
SELECT Q.mat
FROM (
SELECT (
select count(mat) from TableA as AA where AA.mat = TableA.mat and AA.id < TableA.id
)+1 AS Rnn, TableA.mat, TableA.part
FROM TableA
) As Q
GROUP BY Q.mat
PIVOT Q.Rnn In (1,2,3);
SELECT Q.mat
FROM (
SELECT (
select count(mat) from TableA as AA where AA.mat = TableA.mat and AA.id < TableA.id
)+1 AS Rnn, TableA.mat, TableA.part
FROM TableA
) As Q
GROUP BY Q.mat
PIVOT Q.Rnn In (1,2,3);
9 @R03895
โอ้ แบบนี้ใช่เลยครับ
Query ใช้ Pivot ได้ด้วยเหรอเนี่ย
ขอบคุณ คุณ yeadram มาก ๆ ครับ
Query ใช้ Pivot ได้ด้วยเหรอเนี่ย
ขอบคุณ คุณ yeadram มาก ๆ ครับ
10 @R20882
ขออนุญาต ขุด กระทู้หน่อยนะครับ
มีปัญหาคล้ายๆกัน
แต่ผมต้องการให้ไปนับใน report เลยครับ
เช่น ข้อมูลผมมี
5 4 2 2 1 ใช่ ใช่ ไม่ใช่
อยาให้ใน report เพิ่มมา 1 ช่อง คือ ผลรวม ตัวเลข บวกกับ ใช่ (= 1) ไม่ใช่ (=0) ครับ
มีปัญหาคล้ายๆกัน
แต่ผมต้องการให้ไปนับใน report เลยครับ
เช่น ข้อมูลผมมี
5 4 2 2 1 ใช่ ใช่ ไม่ใช่
อยาให้ใน report เพิ่มมา 1 ช่อง คือ ผลรวม ตัวเลข บวกกับ ใช่ (= 1) ไม่ใช่ (=0) ครับ
Time: 0.3331s
from tableA
group by Mat;