Thắc mắc lỗi Invalid object name trong SQL

Liên hệ QC

kjttj

Thành viên hoạt động
Tham gia
10/9/12
Bài viết
105
Được thích
2
Mọi người cho em hỏi:
- Em đang thực hiện câu truy vấn "Hiển thị danh sách các khách hàng có trả tiền trong kỳ"
- Em có lược đồ và các bảng biểu như sau(Ảnh đính kèm):
- Cách làm của em như sau:
Select *From dbo.[DanhMucKH-NCC] inner join dbo.ThuChiTienMat
On dbo.[DanhMucKH-NCC].MaKH = dbo.ThuChiTienMat.MaKH
Where (left(dbo.ThuChiTienMat.MaKH,2)='KH') and (dbo.ThuChiTienMat.TKNo like '11%')
+ Tức là sẽ tìm trong Bảng Thu Chi Tiền Mặt tìm những dòng ở Cột MaKH có 2 ký tự đầu là KH và TKNo là 111
- Nhưng không hiểu sau, lại báo lỗi là (ảnh đính kèm) :
Msg 208, Level 16, State 1, Line 1
Invalid object name 'dbo.DanhMucKH-NCC'.
Mong mọi người chỉ cách và giải thích giúp em!
Em có up cả cây dữ liệu để mọi người xem kiểu dữ liệu cho tiên (Ảnh đính kèm)
Nếu không giải thích lỗi được ,mọi người cho em câu giải cũng được ạ!
Em up lên cả CSDL luôn này, mọi người attach vào SQL xem giúp em nhé!
 

File đính kèm

  • BangThuChiTienMat.rar
    36.8 KB · Đọc: 26
  • CayDuLieu.rar
    67.3 KB · Đọc: 18
  • CSDL_SQL.rar
    200.5 KB · Đọc: 21
Lần chỉnh sửa cuối:
Mọi người cho em hỏi:
- Em đang thực hiện câu truy vấn "Hiển thị danh sách các khách hàng có trả tiền trong kỳ"
- Em có lược đồ và các bảng biểu như sau(Ảnh đính kèm):
- Cách làm của em như sau:
Select *From dbo.[DanhMucKH-NCC] inner join dbo.ThuChiTienMat
On dbo.[DanhMucKH-NCC].MaKH = dbo.ThuChiTienMat.MaKH
Where (left(dbo.ThuChiTienMat.MaKH,2)='KH') and (dbo.ThuChiTienMat.TKNo like '11%')
+ Tức là sẽ tìm trong Bảng Thu Chi Tiền Mặt tìm những dòng ở Cột MaKH có 2 ký tự đầu là KH và TKNo là 111
- Nhưng không hiểu sau, lại báo lỗi là (ảnh đính kèm) :
Msg 208, Level 16, State 1, Line 1
Invalid object name 'dbo.DanhMucKH-NCC'.
Mong mọi người chỉ cách và giải thích giúp em!
Em có up cả cây dữ liệu để mọi người xem kiểu dữ liệu cho tiên (Ảnh đính kèm)
Nếu không giải thích lỗi được ,mọi người cho em câu giải cũng được ạ!
Em up lên cả CSDL luôn này, mọi người attach vào SQL xem giúp em nhé!
Bạn thử dùng câu lệnh sau trước rồi mới thực hiện các câu lệnh truy vấn:

[GPECODE=sql]USE DuLieuKeToan[/GPECODE]
Vì tôi thấy bạn đang trỏ đến CSDL là master, không phải là DuLieuKeToan nên nó không tìm thấy các bảng mà bạn truy vấn.
 
Cảm ơn anh nhé, em có giải ra được bằng cách như thế này (đảo ngược vị trí các bảng lại), nhưng cũng không hiểu vì sao làm được, mong anh gĩ thích kĩ giúp:
Select dbo.[DanhMucKH-NCC].*
From dbo.ThuChiTienMat inner join dbo.[DanhMucKH-NCC]
On dbo.ThuChiTienMat.MaKH = dbo.[DanhMucKH-NCC].MaKH
Where (left(dbo.ThuChiTienMat.MaKH,2)='KH') and (TKNo like '11%').

Anh cho em hỏi thêm vấn đề này: Từ lúc em làm như anh[FONT=Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace] (paste [/FONT]USE DuLieuKeToan vào đầu đoạn trên thì kết quả lại hiện ra, nhưng khi xóa dùng trên và F5 nó vẫn ra (dù không có), và tạo một Query mới mà không có dòng Use dulieuketoan thì vẫn được). Em không hiểu tại sao cả, mong anh giải thích giúp!
 
Lần chỉnh sửa cuối:
Cảm ơn anh nhé, em có giải ra được bằng cách như thế này (đảo ngược vị trí các bảng lại), nhưng cũng không hiểu vì sao làm được, mong anh gĩ thích kĩ giúp:
Select dbo.[DanhMucKH-NCC].*
From dbo.ThuChiTienMat inner join dbo.[DanhMucKH-NCC]
On dbo.ThuChiTienMat.MaKH = dbo.[DanhMucKH-NCC].MaKH
Where (left(dbo.ThuChiTienMat.MaKH,2)='KH') and (TKNo like '11%').

Anh cho em hỏi thêm vấn đề này: Từ lúc em làm như anh (paste USE DuLieuKeToan vào đầu đoạn trên thì kết quả lại hiện ra, nhưng khi xóa dùng trên và F5 nó vẫn ra (dù không có), và tạo một Query mới mà không có dòng Use dulieuketoan thì vẫn được). Em không hiểu tại sao cả, mong anh giải thích giúp!

Đảo vị trí cột hay bảng? phải là cột chứ. Nếu muốn thay đổi vị trí cột thì bạn thay dấu sao (*) ở trên thành tên cột theo thứ tự bạn muốn là được.
Câu lệnh chuyển đổi cơ sở dữ liệu ở trên chỉ sử dụng 1 lần. Bạn đã mở cửa nhà và vào nhà rồi thì cần gì mở cửa nữa. Muốn vào nhà khác thì mới sử dụng nó lại.
 
Web KT

Bài viết mới nhất

Back
Top Bottom