Arsip: Query didalam query..???

more 14 years ago
ZeAL
Gantian ah.. sekarang gue yang nanya... :D :D
gini.. gue punya table.
table PEG_PERORANGAN dengan field id_user, nama
dan punya detail :
table PEG_PEKERJAAN dengan field id_user, no_urut, tgl_berlaku
didalam table PEG_PEKERJAAN, tiap id_user bisa memiliki beberapa record.
Gimana cara menampilkan dengan 1 query saja :
SEMUA user yang terdaftar di PEG_PERORANGAN,
TAPI hanya user yang memiliki tgl_berlaku TERBARU yang MINIMAL 3 tahun yang lalu dari TANGGAL SEKARANG
Contoh, misalnya user A, punya 3 record di table PEG_PEKERJAAN :
A | 1 | 2000/4/10
A | 2 | 2004/5/9
A | 3 | 2005/1/4
user A tersebut TIDAK ditampilkan ke list karena tgl_berlaku terbarunya (2005/1/4) tidak berjarak 3 tahun dari tahun sekarang (2006)
B | 1 | 1995/4/10
B | 2 | 1997/5/9
B | 3 | 1998/9/9
B | 4 | 2000/1/4
user B tersebut MASUK ditampilkan ke list karena tgl_berlaku terbarunya (2000/1/4) berjarak lebih dari 3 tahun dari tahun sekarang (2006) (2006 - 2000 = 6)
C | 1 | 1999/4/10
C | 2 | 2003/5/9
C | 3 | 2001/1/4
user C tersebut MASUK ditampilkan ke list karena tgl_berlaku terbarunya (2003/5/9) berjarak sama dengan 3 tahun dari tahun sekarang (2006) (2006 - 2003 = 3)
jadi logikanya, ambil tanggal terbaru untuk user bersangkutan dan kurangi tgl sekarang dengan tanggal tersebut.. jika lebih atau sama dengan 3, maka tampilkan/masukan
sebisa mungkin buat dalam 1 query.. jadi gue gak perlu hard coding cek 1-1 pake iterasi... :D
oia, MySQL yang gue pake versi 4..
tolong ya, guys... gue lemah nih kalo query-queryan.. abis belajarnya rada telat.. . hihihihi... :D :D
thanks yooo....
best regards,
ZeAL

more 14 years ago
jayadi888
Misalkan default 1thn = 365 hari, 3thn=1095hari
kurang lebih SQL-nya :
SELECT ID_USER FROM PEG_PEKERJAAN
WHERE DATEDIFF(NOW(),TGL_BERLAKU)>=1095 AND
ID_USER NOT IN (SELECT ID_USER FROM PEG_PEKERJAAN WHERE DATEDIFF(NOW(),TGL_BERLAKU)<1095 GROUP BY ID_USER)
GROUP BY ID_USER

more 14 years ago
dinox
Menurut gw dah bener kalo peke tgl karena misal jika tgl sekarang 26 september tgl berlaku ditabel peg perorangan 20 desember 2003 berarti belum 3 tahun tuh, sedangkan kalo pake year hasilnya 2006-2003=3 thn jadinya dia akan tetap mask list padahal kurang ~3bln

more 14 years ago
ZeAL
okay..okay.... ngalah deh... hehehehe.. :D :D :D
tengkyu ya bos untuk jawabannya...
best regards,
ZeAL

more 14 years ago
ZeAL
ehm... sory neh nambah dikit...
Hasil dari query diatas cuma menghasilkan id_user aja...
Gimana cara nampilin nama yang bersangkutan yah?
tengkyu yooo.. :D :D

more 14 years ago
jayadi888
@ZeAL: ehm... sory neh nambah dikit... Hasil dari query diatas cuma menghasilkan id_user aja... Gimana cara nampilin nama yang bersangkutan yah? tengkyu yooo.. :D :D
SELECT PP.ID_USER, PR.NAMA FROM PEG_PEKERJAAN PP, PEG_PERORANGAN PR
WHERE DATEDIFF(NOW(),PP.TGL_BERLAKU)>=1095 AND
PP.ID_USER NOT IN (SELECT ID_USER FROM PEG_PEKERJAAN WHERE DATEDIFF(NOW(),TGL_BERLAKU)<1095 GROUP BY ID_USER)
AND PP.ID_USER=PR.ID_USER
GROUP BY PP.ID_USER, PR.NAMA

more 14 years ago
ZeAL
Sekarang kayaknya lebih mabok nih...
tablenya sama kayak diatas. cuma tambah 1 field untuk table PEG_PEKERJAAN.
Sekarang tujuannya adalah menghitung (count) jumlah total untuk masing2 golongan...
table PEG_PERORANGAN dengan field id_user, nama
dan punya detail :
table PEG_PEKERJAAN dengan field id_user, no_urut, tgl_berlaku, golongan
didalam table PEG_PEKERJAAN, tiap id_user bisa memiliki beberapa record.
Tapi jangan lupa syaratnya :
- Golongan yang diambil adalah golongan yang paling terbaru (tanggal terkini) dari id_user bersangkutan.
- Yang perlu ditampilkan cukup nama golongan dan jumlahnya.
---
oia, sekalian ah disini...
di dalam table PEG_PERORANGAN kan ada field tgl_lahir.. nah, gimana cara bikin pengelompokan jumlah yah?
jadi dikelompkkan berdasarkan usia :
- < 20
- 20 - 25
- 26 - 30
- 31 - 35
- 36 - 40
- 41 - 45
- 46 - 50
- > 50
hasil akhirnya cukup tampilin jumlah masing-masing kelompok dan nama kelompoknya.. Bisa gak tuh kira2 hanya dengan 1 query aja?
Tolong pencerahannya ya, bos...
puyeng neh.. banyak kerjaan kudu selesai pada saat hampir bersamaan..
best regards,
ZeAL

more 14 years ago
ZeAL
Berhubung gak ada yang jawab, dijawab sendiri deh...
untuk jawaban pertama :
select distinct a.golongan, count(a.golongan) from peg_pekerjaan a where a.sk_tgl in (select max(sk_tgl) from peg_pekerjaan b where b.id_user = a.id_user) group by a.golongan
Tapi untuk jawaban kedua kagak tau neh.. ada yang tau..??more ...
reply |
Report Obsolete
Last Articles
- Lazarus Release 2.0.12
- Project Group dalam Lazarus
- FastPlaz Database Explorer
- Release: FastPlaz Super Mom v0.12.22
- PascalClass #3: Web Development with Free Pascal
- Makna Pascal di Pascal Indonesia
- Kulgram : Instalasi Lazarus di Perangkat Berbasis ARM
- PascalClass #1: Analisa Database dan Machine Learning
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
- Mengenal OXYGENE – Pascal For .NET
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 6 months ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 6 months ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 7 months ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 7 months ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 7 months ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 7 months ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 1 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 8 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 8 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 8 years ago
Random Topic
- Delphi integrasi dengan visual web developer untuk asp.net
by ivan in Hal umum tentang Pascal Indonesia more 14 years ago - DBGrid Warna - warni
by rusli_chow in Tip n Trik Pemrograman more 13 years ago - komponen socket tidak muncul di delphi7
by bad2001 in Tip n Trik Pemrograman more 14 years ago - Konversi Rupiah ke Terbilang
by hasan_plg in Tip n Trik Pemrograman more 14 years ago - Nginput user and password conection otomatis
by fissas in MsSQL more 13 years ago - strto...
by brodien in Tip n Trik Pemrograman more 13 years ago - operasi tanggal
by jagur in MsSQL more 13 years ago - Menampilkan tanggal pajak
by don2103 in MsSQL more 10 years ago - timeArt 1.0 [final release]
by portege in OpenSource dan Gratis more 14 years ago - program pembagian harta warisan
by alung in Hal umum tentang Pascal Indonesia more 12 years ago