Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Help] Select giá trị từ dòng thứ năm trong tables
#21
để mình đưa hai file hai file cho bạn thử nhá nhớ update link cái đường dẩn file excel trong access.

+mình đang cho nó selct những giá trị nào tồn tại trong bảng excel = code này

Mã:
SELECT F21, F22, F23, F24, F25, F26, F27, F28, F29, F30
FROM Journal_Import
WHERE Journal_Import.F30 or Journal_Import.F21;
=> kết quả select ok nhưng khi đưa vào đoạn code insert có xét dk là trùng thì không được

Đoạn Query đó như sau

Mã:
INSERT INTO test1 ( SoHD, NgayNhan, TenKhachHang, MST, MatHang, GiaChuaThue, ThueSuat, Thue, GhiChu, LoaiHD )
SELECT F21, F22, F23, F24, F25, F26, F27, F28, F29, F30
FROM Journal_Import
WHERE Journal_Import.F30 or Journal_Import.F21 AND NOT EXISTS ( SELECT SoHD
                     FROM test1
                    WHERE  test1.SoHD = Journal_Import.F21 or test1.LoaiHD = Journal_Import.F30);

Đây là link 2 file
file access + excel
Nó báo là sẽ insert váo 1752 dòng mà trong khi đó data đó nó có rồi nó công dồn vs data mới khi mình import vào table excel link in access.
mong các bạn giúp cho 040040040040040
Chữ ký của Shigeshi Hitoshi Xin chào, mình là Shigeshi Hitoshi, Tham gia http://thuthuataccess.com/forum từ ngày 06-09 -13.
Reply
Những người đã cảm ơn
#22
Cách của mình cũng giống như tmtien261
Chữ ký của tt1212 Present Nhận viết phần mềm, hỗ trợ viết phần mềm, hợp tác viết phần mềm trên nên Microsoft Access mọi phiên bản Liên hệ: Mr Đức -989276236. Email: Tantriviet.vnn@gmail.com website:http://www.tantrivietsoft.com/
Reply
Những người đã cảm ơn
#23
tt1212 bạn nói gì vậy mình có thấy bạn nào tmtien261 cm trong bài này đâu bạn
có bạn nào giúp mình với mình có post 2 file ấy luôn rồi hjxhjxhjx 040040040040040
Chữ ký của Shigeshi Hitoshi Xin chào, mình là Shigeshi Hitoshi, Tham gia http://thuthuataccess.com/forum từ ngày 06-09 -13.
Reply
Những người đã cảm ơn
#24
(10-09-13, 03:13 PM)Shigeshi Hitoshi Đã viết: mình dùng query nhiều lắm vì yêu câu là không dùng form thì đâu dùng vba được nên phái ráng tận dụng qurey của sql để làm thôi. Thank to all

Một điểm xin bổ sung - mặc dù bài viết đã cũ nhưng tôi thấy cần trả lời.
Ưu điểm lớn nhất của Access là cho phép sử dụng các hàm UDF (hàm người dùng) trong các câu lệnh truy vấn. Nếu điều kiện xử lý không quá phức tạp thì đưa ngay câu xét điều kiện khi insert, nhưng nếu cần xử lý phức tạp thì bạn có thể viết 1 hàm VBA sau đó gọi trực tiếp trong câu lệnh Query.
Ví dụ: Tôi viết hàm ABC(data) để thêm chữ ABC vào chuỗi. Khi gọi query tôi có thể làm thế này
Select ABC(Truong1), Truong 2 from tblVidu;
(Đây là một nỗ lực của Microsoft để tăng khả năng tương tác của người dùng với dữ liệu bằng các thủ tục để mô phỏng cách dùng Store Procedure và FUnction trong MS SQL)
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn
#25
Mình sửa lại query cho bạn...

Mã PHP:
INSERT INTO test1 SoHDLoaiHDNgayNhanTenKhachHangMSTMatHangGiaChuaThueThueSuat
ThueGhiChu )
SELECT Journal_Import.F21Journal_Import.F30Journal_Import.F22Journal_Import.F23Journal_Import.F24,
 
Journal_Import.F25Journal_Import.F26Journal_Import.F27Journal_Import.F28Journal_Import.F29
FROM Journal_Import
WHERE 
(((Journal_Import.F21)>0) AND ((Journal_Import.F30)>0) AND ((Exists (SELECT SoHD 
                     FROM test1 
                    WHERE  test1
.SoHD Journal_Import.F21 AND test1.LoaiHD Journal_Import.F30))=False)); 
Cái không hợp lý của bạn là bạn không đặc tả điều kiện cho Journal_Import.F30, Journal_Import.F21 (với bảng link thì số liệu của nó là text sau đó được chuyển thành số. VÌ vậy bạn cần dùng hoặc là not null hoặc là >0.
Bạn xem nhé...Ngoài ra có thể dùng điều kiện NOT IN như đoạn dưới
Mã PHP:
INSERT INTO test1 SoHDLoaiHDNgayNhanTenKhachHangMSTMatHangGiaChuaThueThueSuat
ThueGhiChu )
SELECT Journal_Import.F21Journal_Import.F30Journal_Import.F22Journal_Import.F23Journal_Import.F24,
 
Journal_Import.F25Journal_Import.F26Journal_Import.F27Journal_Import.F28Journal_Import.F29
FROM Journal_Import
WHERE 
(((Journal_Import.F21)>0) AND ((Journal_Import.F30)>0) AND (Journal_Import.F21 NOT IN (SELECT 
SoHD FROM test1 
WHERE test1
.SoHD Journal_Import.F21 AND test1.LoaiHD Journal_Import.F30))); 
Cách tiếp cận của bạn có nhiều điểm nên nghiên cứu lại:
1. Không nên làm việc lựa chọn, truy vấn trực tiếp từ bảng liên kết với Excel; Cứ đưa vào một bảng tạm rồi mới dùng Query xử lý sau (tốc độ sẽ cải thiện đáng kể)
2. Dùng 2 cấp thực hiện - 1 lựa chọn các bản ghi đạt yêu cầu là số liệu đưa vào bảng tạm trước; Sau đó mới tiếp đến lọc xem có các bản ghi nào không có trong bảng hiện hữu, cách này sẽ đẩy nhanh tốc độ.
Tôi làm như sau:
Bước 1: Tạo bảng tmpTbl1 bằng Query sau
Mã PHP:
SELECT a.F21 as SoHDa.F30 as LoaiHDa.F22 as NgayNhana.F23 as TenKhachHanga.F24 as MST
a.F25 as MatHanga.F26 as GiaChuaThuea.F27 as ThueSuata.F28 as Thuea.F29 as GhiChu INTO tmpTbl1
FROM Journal_Import 
AS a
WHERE 
(((a.F21)>0) AND ((a.F30)>0)); 
Bước 2 lựa chọn danh mục các bản ghi có trong bảng tạm này nhưng không có trong test1 bằng đoạn truy vấn sau đây
Mã PHP:
SELECT a.SoHDa.LoaiHDa.NgayNhana.TenKhachHanga.MSTa.MatHanga.GiaChuaThue
a.ThueSuata.Thuea.GhiChu
FROM tmpTbl1 
AS a LEFT JOIN test1 AS b ON a.[LoaiHD] = b.[LoaiHD]
WHERE (((b.LoaiHDIs Null)); 

Sau đó là tùy nghi....
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn
#26
cám ơn bạn rất nhiều mình sẽ làm theo hướng dẫn của bạn vì mình cũng mới tìm hiều về khoàng query bên access , nên có nhiều thứ mình không hiểu cho lắm . Thank so much ^_^
Chữ ký của Shigeshi Hitoshi Xin chào, mình là Shigeshi Hitoshi, Tham gia http://thuthuataccess.com/forum từ ngày 06-09 -13.
Reply
Những người đã cảm ơn
#27
Cám ơn bạn paulsteigel vì đã fix dùm mình cái query . Mà bạn ơi hình như có sự hiểu lầm gì ở đây ở phần select giá trị thì phải .

- Ý của mình là select all giá trị có trong bảng kể cả value của hai cột này (Journal_Import.F30 và Journal_Import.F21) có null nhưng có value ở những cột Journal_Import.F22, Journal_Import.F23, Journal_Import.F24, Journal_Import.F25, Journal_Import.F26, Journal_Import.F27, Journal_Import.F28, Journal_Import.F29 thì vẫn phải lấy luôn dữ liệu.

- Trừ những row mà nó null hoàn toàn không có value nào hết như hai file mình có post ở phần trên . Thank so much
Chữ ký của Shigeshi Hitoshi Xin chào, mình là Shigeshi Hitoshi, Tham gia http://thuthuataccess.com/forum từ ngày 06-09 -13.
Reply
Những người đã cảm ơn
#28
Bạn chỉ cần sửa điều kiện như thế này là được thôi!
Mã PHP:
SELECT a.F21 AS SoHDa.F30 AS LoaiHDa.F22 AS NgayNhana.F23 AS TenKhachHanga.F24 AS MSTa.F25 AS MatHang,
a.F26 AS GiaChuaThuea.F27 AS ThueSuata.F28 AS Thuea.F29 AS GhiChu INTO tmpTbl1
FROM Journal_Import 
AS a
WHERE 
(((a.F21Is Not Null) AND ((a.F30Is Not Null)); 
Còn nếu chỉ lấy các dòng có số liệu thì điều kiện thế này
Mã PHP:
WHERE ((([a].[F21] And [a].[F30] And [a].[F22] And [a].[F23] And [a].[F24] And [a].[F25] And [a].[F26] And [a].[F27] And [a].[F28] And [a].[F29]) Is Not Null)); 
Phải liệt kê tất cả các trường cần kiểm tra!
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn
#29
thank bạn
Chữ ký của Shigeshi Hitoshi Xin chào, mình là Shigeshi Hitoshi, Tham gia http://thuthuataccess.com/forum từ ngày 06-09 -13.
Reply
Những người đã cảm ơn
#30
code trên hinh như vẫn loại bỏ những phần cloum 21 vs 30 bị null
còn cái mình cần là như theo tấm hình này nè bạn ơi hixhix

[Hình: 1367333.png]

cho dù hai chổ ấy null , cũng phải lấy luôn value những cột tiếp theo như nó ko null ( mình tình đặt dk : cloum F21 vs F30 có null nhưng cloum F22 -> F29 không null thì vẫn lấy) . không biết đươc không bạn

Đúng là nói thì dể nhưng mà lúc làm thì mình lỗi tùm lum không ra nhưu ý hjxhjx bạn chỉ gái với
Chữ ký của Shigeshi Hitoshi Xin chào, mình là Shigeshi Hitoshi, Tham gia http://thuthuataccess.com/forum từ ngày 06-09 -13.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
Question [Help] Cần giúp đỡ tạo query lấy giá trị của dòng liền trước để tính giá trị trung bình luonguct 4 87 23-11-16, 12:33 AM
Bài mới nhất: luonguct
  [Hỏi] Sự khác nhau của Like và "=" trong các hàm D toancvp 6 202 10-11-16, 12:01 AM
Bài mới nhất: toancvp
  Thay thế giá trị từ cột này sang cột khác trong 1 query trungminh 6 136 08-11-16, 03:24 PM
Bài mới nhất: ongke0711
  Làm thế nào để dùng SQL trong lập trình? paulsteigel 34 2,188 04-11-16, 05:49 PM
Bài mới nhất: Minh Tiên
  [Help] Gộp nhiều dòng có cùng điều kiện lên chung một dòng trong query tronghieu9792 4 174 03-11-16, 09:58 AM
Bài mới nhất: tronghieu9792

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ