Kamis, 30 Januari 2014

Re: Bls: [belajar-access] Query group [1 Attachment]

luar biasa ......
muridnya turun gunung ......
:)






rruuaarrr biasaahhhh...


aksan kurdin



On 1/30/2014 2:36 PM, MBA wrote:
��
[Attachment(s) from MBA included below]

sekedar menambahkan saya coba tanpa vba sbb.

1. Memisahkan data yang punya maj_rock, seam, hole_id sama, dan nilai depth_from nya sambung menyambung menjadi satu.
�� ��
Q00:
SELECT t2.hole_id, Min(t2.depth_from) AS MinOfdepth_from, Max(t2_1.depth_to) AS MaxOfdepth_to, t2.maj_rock, t2.seam
FROM t2 AS t2_1 INNER JOIN t2 ON (t2.seam = t2_1.seam) AND (t2.maj_rock = t2_1.maj_rock) AND (t2_1.depth_from = t2.depth_to)
GROUP BY t2.hole_id, t2.maj_rock, t2.seam;

2. tabel ��t2 di inner join dengan query Q00 pada field maj_rock, seam dan hole_Id dengan kriteria nilai depth_from nya lebih besar atau sama dengan minOfDepth_from dan nilai depth_to kurang dari atau sama dengan maxofDepth_to

Q10:
SELECT t2.*
FROM t2 INNER JOIN Q00 ON (t2.maj_rock = Q00.maj_rock) AND (t2.seam = Q00.seam) AND (t2.hole_id = Q00.hole_id)
WHERE (((t2.depth_from)>=[minofdepth_from]) AND ((t2.depth_to)<=[maxofdepth_to]));

3. tabel t2 di left join dengan Q10 dengan syarat semua nilai field di Q10 adalah null

Q11:
SELECT t2.hole_id, t2.depth_from, t2.depth_to, t2.maj_rock, t2.seam
FROM t2 LEFT JOIN Q10 ON (t2.seam = Q10.seam) AND (t2.maj_rock = Q10.maj_rock) AND (t2.depth_to = Q10.depth_to) AND (t2.depth_from = Q10.depth_from) AND (t2.hole_id = Q10.hole_id)
WHERE (((Q10.hole_id) Is Null) AND ((Q10.depth_from) Is Null) AND ((Q10.depth_to) Is Null) AND ((Q10.maj_rock) Is Null) AND ((Q10.seam) Is Null));

4. Hasil yang dicari adalah union dari Q00 dengan Q11

qResult:
SELECT * FROM Q00
UNION SELECT * FROM Q11;


5. Hasil query qResult dan Query yang diinginkan ada di lampiran.


Semoga ini yang dimaksud.



Salam Hangat dan Jabat Erat,

Edy Wiyono




Pada Rabu, 29 Januari 2014 13:39, aksan kurdin <aksan.kurdin@gmail.com> menulis:
luar biasa ....

tapi bukan deret ukur cak. cuma pengelompokan jenis batuan dari kedalaman sesuai pengambilan datanya. untuk kedalaman yang berurutan, tetapi jenis batu dan seam nya sama, batas awal dan akhir dari kedalaman di jadikan satu, di ambil dari yang paling tinggi ke kedalaman yang paling dalam.

penyelesaian satu2nya memang dengan vba, tidak bisa dengan query, kecuali jika seam untuk yang kosong tetap di berikan kode unik, maka grouping by seam lebih sempurna.

luar biasa cak.


aksan kurdin


On 1/29/2014 1:09 PM, hari yanto wrote:
������
[Attachment(s) from hari yanto included below]
Dari data yang disampaikan, menurut saya, mempunyai model mirip dengan deret ukur. Pembedanya, dan yang diingin dicari adalah pengelompokkan maj_rock berdasarkan deret ukur itu.

Saya berpendapat, mengeksekusinya, harus menggunakan tabel temporer melalui VBA. Gambarannya begini.

1. Karena type data maj_rock text, kita harus buat control variabel (variant). Misalnya bernama x. Dim x As Variant.
2. Default nilai x kita tetapkan kosong "". Kenapa kosong, soalnya nanti akan dibandingkan dengan maj_rock dari tabel. Setelah dibandingkan, barulah variabel x kita beri nilai maj_rock record sedang berjalan.
3. Saat x tidak sama dengan record maj_rock, kita rekam ke dalam tabel temporer (semua field).

Ini contoh script yang saya maksud:

Function ambilData(tb)
Dim rbs As Recordset
Dim db As DAO.Database
Dim x As Variant

������������������ Set rbs = CurrentDb.OpenRecordset("select * from t2")
������������������ If Not rbs.EOF Then
������������������������������������������ x = ""
������������������������������������������
������������������������������������������ Set db = CurrentDb
������������������������������������������ Do While Not rbs.EOF
������������������������������������������������������������������ If x <> rbs.Fields(3) Then������ 'jika x tidak sama dengan maj_rock
������������������������������������������������������������������ 'pengubahan koma menjadi titik, karena koma bagian
������������������������������������������������������������������ 'dari bahasa vba ==> ubah_koma = Replace(nil, ",", ".")
������������������������������������������������������������������������������������������ db.Execute "insert into " _
������������������������������������������������������������������������������������������ & tb & " values ('" _
������������������������������������������������������������������������������������������ & rbs.Fields(0) & "'," _
������������������������������������������������������������������������������������������ & ubah_koma(rbs.Fields(1)) & "," _
������������������������������������������������������������������������������������������ & ubah_koma(rbs.Fields(2)) & ",'" _
������������������������������������������������������������������������������������������ & rbs.Fields(3) & "','" _
������������������������������������������������������������������������������������������ & rbs.Fields(4) & "')"
������������������������������������������������������������������ 'else
������������������������������������������������������������������������������������������ 'ini tempat yang maj_rocknya sama
������������������������������������������������������������������������������������������ 'tidak perlu direkam
������������������������������������������������������������������ End If
������������������������������������������������������������������
������������������������������������������������������������������ x = rbs.Fields(3)������������ 'kita berikan x sama dengan record maj_rock
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ 'terakhir record sedang running
������������������������������������������������������������������ rbs.MoveNext������������������������������������������ 'pindah ke record selanjutnya
������������������������������������������ Loop
������������������������������������������ db.Close
������������������������������������������ Set db = Nothing
������������������ End If
������������������ rbs.Close
������������������ Set rbs = Nothing
������������������
End Function


Terlampir adalah contoh mdb 2003 yang merekam aktivitas script diatas.

Semoga bisa membantu dan memberi semangat.

Hariyanto (Surabaya)


On Wednesday, 29 January 2014, 12:15, aksan kurdin <aksan.kurdin@gmail.com> wrote:
Ilustrasi dengan gambar lebih gampang di mengerti:




maksud mbak ira dotel, kita group di hole_id, maj_rock, dan seam.
lalu depth_from diambil first, depth_to diambil last.
querynya sort by hole_id, deptfhrom

hasilnya:


Ternyata hasilnya tidak sama dengan keinginan mbak ira, walaupun secara logika sudah benar (seam yang null tetep di anggap satu data semua).
Untuk seam, sepertinya tetep harus diberikan pengkodean unik agar hasil yang diinginkan sama seperti yang diilustrasikan:




regards,
aksan kurdin

On 1/29/2014 11:34 AM, Ira Idotel wrote:
������������������
Dear Mas cgsatu(Elang)
untuk depth_form adalah meter awal mulai nya bore dan 17.4 adalah angka meteran arti nya 17 meter point 40, dan 22.8 adalah meter depth ( botom nya )
jadi misal nya di 17.4 sampai 22.8 MS ngga bisa di group karena maj_rock nya MS satu saja
Nah kalau 22.8������������������ sampai 23.15 CO
������������������ ������������������ ������������������ ������������������ ������������������ 23.15 sampai 26.15 CO
������������������ ������������������������������������������������������������������������������������������������������������������������������ 26.15 sampai 28.55 CO������������������
������������������������������������������������������������������������������������������������������������������������������������������������������������������ 28.55 sampai 28.9������������������ CO
demikain juga dengan yang lain yg maj_rock nya sama

Apakah bisa di group jadi Meter Top nya 22.8 dan botom nya 28.9 CO ������������������������������������

demikian

Salam, Ira borneo


On Wednesday, January 29, 2014 10:40 AM, CGSATU <cgsatu@yahoo.com> wrote:
������������������
Mbak, saya tidak paham maksudnya :

Penjelasan file :
-untuk depth_from mau nya di ambil kedalaman awal,
-untuk depth_to mau nya di ambil kedalaman akhir,
-untuk maj_rock mau nya kalau nama batuan nya sama di group jadi satu kali saja
-untuk seam otomatis tergroup juga.

contoh depth_form diambil kedalaman awal.

Kalau di data saya lihat angkanya 17,4������������������ atau 22,8 dsb. Maksudnya angka dibelakang koma dihilangkan atau dibulatkan ?

Atau kolom depth_form tersebut diurutkan dari yang nilai kecil atau bagaimana ?

Misal cuma mau ambil beberapa karakter saja, mungkin artikel ini bisa membantu. http://mugi.or.id/blogs/elang/archive/2011/01/26/manipulating-text-using-sql-in-ms-access.aspx������������������

Mungkin Mbak Ira bisa lebih jelas lagi maksudnya bagaimana ?

cgsatu (Elang)


On Wednesday, January 29, 2014 7:17 AM, Ira Idotel <iraidotel@yahoo.com> wrote:
������������������
[Attachment(s) from Ira Idotel included below]
Dear All Pakar Access, semangat Pagi
salam hangat semuanya , mohon bantuan nya
saya punya problem ngegroup pada query , terlampir attachment exel file untuk tampilan yang di ingin kan
Penjelasan file :
-untuk depth_from mau nya di ambil kedalaman awal,
-untuk depth_to mau nya di ambil kedalaman akhir,
-untuk maj_rock mau nya kalau nama batuan nya sama di group jadi satu kali saja
-untuk seam otomatis tergroup juga.


Nb: mungkin Pak Herry bisa bantu

salam kompak selalu ntuk Access mania semua

Salam, Ira borneo












Tidak ada komentar:

Posting Komentar