 |
|
ใครพอจะมีเทคนิคการดึงข้อมูลซ้ำๆกันแล้วให้มันเหลืออันเดียวบ้างไหมครับ |
|
 |
|
|
 |
 |
|
Code (SQL)
SELECT COUNT(*) AS bar, barcode
FROM table_name
GROUP BY barcode
ORDER BY bar DESC;
|
ประวัติการแก้ไข 2017-09-02 08:16:24
 |
 |
 |
 |
Date :
2017-09-02 08:13:06 |
By :
pakyaudio |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (SQL)
select bar, max(state)
from tablename
group by bar
แต่อยากจะบอกว่ามันเป็น พื้นฐาน
อยากให้หัดอ่าน document ของแต่ละโปรแกรมกันหน่อยได้ไหม อย่าขึ้เกียจอ่านกันนักเลย
มันได้ประโยชน์สำหรับผู้อ่านนะครับ
|
ประวัติการแก้ไข 2017-09-02 14:55:08
 |
 |
 |
 |
Date :
2017-09-02 14:52:47 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอบความคิดเห็นที่ : 3 เขียนโดย : Chaidhanan เมื่อวันที่ 2017-09-02 14:52:47
รายละเอียดของการตอบ ::
ผมอ่านครับ ส่วนที่เอามาเป็นตัวอย่างนั้นมันเอามาเป็นแนวทางเฉยๆ ครับ
Code (VB.NET)
"SELECT MAX(t_sikakari.sagyonaiyo_cd) as STATE,t_sagyomeisai.pltdr_no as BARCODE,m_zaikozuban.zaikozuban ,t_sikakari.kosin_date,t_sagyomeisai.suryo,t_sagyomeisai.cur_suryo,t_siagekensa.stldr_no
FROM t_sikakari
JOIN t_sagyomeisai
ON t_sikakari.sagyomeisai_cd = t_sagyomeisai.sagyomeisai_cd
JOIN t_siagekensa
ON t_sagyomeisai.siagekensa_cd = t_siagekensa.siagekensa_cd
JOIN m_zaikozuban
ON t_sagyomeisai.pltzuban_cd = m_zaikozuban.zaikozuban_cd
group by t_sikakari.sagyonaiyo_cd ,t_sagyomeisai.pltdr_no,t_sikakari.kosin_date,t_sagyomeisai.suryo,t_sagyomeisai.cur_suryo,t_siagekensa.stldr_no,m_zaikozuban.zaikozuban
order by t_sagyomeisai.pltdr_no;"

บอกทีครับ ทำไมมันมาทั้งหมดไม่มาเฉพาะ Max
|
 |
 |
 |
 |
Date :
2017-09-07 11:45:03 |
By :
realizejoke |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
บอกทีครับ ทำไมมันมาทั้งหมดไม่มาเฉพาะ Max
>>>> เพราะว่าเอา t_sikakari.sagyonaiyo_cd ไปใส่ใน Group By ด้วย ก็เลยออกมาทั้งหมด
แต่ถึงจะเอา t_sikakari.sagyonaiyo_cd ออกจาก Group by ก็ยังไม่ได้ข้อมูลแถวเดียวอยู่ดีครับ
เนื่องจากมีบางคอลัมภ์ที่มีข้อมูลต่างกัน
ตรง t_sikakari.kosin_date
อันนี้เอาออกได้ไหมครับ
หรือจำเป็นต้องเก็บไว้
|
 |
 |
 |
 |
Date :
2017-09-07 12:03:29 |
By :
fonfire |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
grouip by kosin_date มันต่างกัน
|
 |
 |
 |
 |
Date :
2017-09-07 12:13:25 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
จะใช้ยังไงเหรอครับ
เอาวันที่ ที่มากที่สุด ก็ใช้ max(t_sikakari.kosin_date)
แต่จากตัวอย่าง state ล่าสุด มันไม่มีวันที่
หรือว่าต้องการวันที่ตาม state ล่าสุดเลย
|
 |
 |
 |
 |
Date :
2017-09-07 17:04:25 |
By :
fonfire |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Order by DESC ส่วน Select ก็ Top ว่าต้องการเท่าไรแบบนี้ได้ไหมครับ
|
 |
 |
 |
 |
Date :
2017-09-08 08:01:39 |
By :
adminliver |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตามนี้ครับ น่าจะได้ผล ลองเอาไปรันดู
SELECT * FROM t_sikakari t1
JOIN (SELECT MAX(state) AS state,barcode FROM t_sikakari GROUP BY barcode) t2
ON t1.state=t2.state and t1.barcode=t2.barcode
|
 |
 |
 |
 |
Date :
2017-09-08 16:36:51 |
By :
OOP |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อ่านของคุณ oop ก็ได้คำตอบแล้ว
|
 |
 |
 |
 |
Date :
2017-09-10 11:24:55 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอบความคิดเห็นที่ : 10 เขียนโดย : OOP เมื่อวันที่ 2017-09-08 16:36:51
รายละเอียดของการตอบ ::
Code (VBScript)
"SELECT pltdr_no,t_sikakari.sagyomeisai_cd
FROM t_sagyomeisai
JOIN (SELECT MAX(sagyonaiyo_cd) as STATE,sagyomeisai_cd FROM t_sikakari GROUP BY sagyomeisai_cd) t2
ON t_sagyomeisai.sagyomeisai_cd = t2.sagyomeisai_cd
group by t_sikakari.sagyomeisai_cd,pltdr_no;"
ตารางแบ่งเป็นสองตาราง
ตารางแรกจะมีตัวแทนบาโค๊ด
เช่น
barcode_no barcode
01 TE17080
ส่วนอีกตารางเป็นการบอก State
เช่น
barcode_no State date
01 01 17/08
01 02 17/09
01 03 17/10
01 04 17/11
01 05 17/12
01 06 17/13
ผมต้องการดึง state สูงสุดจากตารางที่สองพร้อมวันที่ ผมพยายามแล้วแต่ก็ไม่ได้ครับ
|
 |
 |
 |
 |
Date :
2017-09-10 14:56:30 |
By :
realizejoke |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (SQL)
"SELECT t_sagyomeisai.pltdr_no,m_sagyonaiyo.sagyonaiyo_name,m_zaikozuban.zaikozuban,t_sikakari.sikakarist_date,t_sagyomeisai.suryo,t_sagyomeisai.cur_suryo,t_siagekensa.stldr_no,m_seihinjotai.seihinjotai_name
FROM t_sikakari
JOIN (SELECT MAX(t_sikakari.sagyonaiyo_cd) as STATE,t_sikakari.sagyomeisai_cd FROM t_sikakari GROUP BY sagyomeisai_cd) t2
ON t_sikakari.sagyomeisai_cd = t2.sagyomeisai_cd and t_sikakari.sagyonaiyo_cd = t2.STATE
JOIN t_sagyomeisai
ON t_sikakari.sagyomeisai_cd = t_sagyomeisai.sagyomeisai_cd
JOIN m_zaikozuban
ON t_sagyomeisai.pltzuban_cd = m_zaikozuban.zaikozuban_cd
JOIN m_sagyonaiyo
ON t_sikakari.sagyonaiyo_cd = m_sagyonaiyo.sagyonaiyo_cd
JOIN m_seihinjotai
ON t_sagyomeisai.seihinjotai_cd = m_seihinjotai.seihinjotai_cd
JOIN t_siagekensa
ON t_sagyomeisai.siagekensa_cd = t_siagekensa.siagekensa_cd
where t_sikakari.sakujo_flg = 0
group by m_sagyonaiyo.sagyonaiyo_name,t_sagyomeisai.pltdr_no,t_sikakari.sikakarist_date,m_zaikozuban.zaikozuban ,t_sagyomeisai.suryo,t_sagyomeisai.cur_suryo,t_siagekensa.stldr_no,m_seihinjotai.seihinjotai_name
order by t_sagyomeisai.pltdr_no;"
ได้แล้วครับ
|
 |
 |
 |
 |
Date :
2017-09-10 15:27:42 |
By :
realizejoke |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

|
 |
 |
 |
 |
Date :
2017-09-12 16:39:58 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|