Saya telah membuat tampilan untuk tugas saya dan menambahkan semua data yang diperlukan yang perlu saya tampilkan namun saya tidak mengerti apa yang membuatnya tidak menampilkan apa pun. Saya benar-benar baru mengenal SQL jadi jangan menertawakan saya.

Ini tampilannya:

SELECT        TOP (100) PERCENT dbo.Ticket_T.ticketID, dbo.Ticket_T.assignedDate, dbo.Ticket_T.ticketStatus, dbo.Ticket_T.ticketPriority, dbo.Ticket_T.ticketETA, dbo.Ticket_T.ticketFlag, dbo.Ticket_T.userID, dbo.Ticket_T.staffID, 
                         dbo.User_T.userID AS Expr1, dbo.Staff_T.staffID AS Expr2, dbo.Staff_T.staffName, dbo.User_T.categoryType, dbo.User_T.userDate, dbo.User_T.userDescription, dbo.User_T.userName, dbo.Status_T.ticketStatus AS Expr3, 
                         dbo.Staff_T.staffRole
FROM            dbo.Ticket_T INNER JOIN
                         dbo.Status_T ON dbo.Ticket_T.ticketStatus = dbo.Status_T.ticketStatus INNER JOIN
                         dbo.User_T ON dbo.Ticket_T.userID = dbo.User_T.userID INNER JOIN
                         dbo.Staff_T ON dbo.Ticket_T.staffID = dbo.Staff_T.staffID
ORDER BY dbo.Ticket_T.ticketStatus

Konteks: Ini adalah sistem meja bantuan tiket dan saya mencoba membuat tampilan yang menunjukkan tiket dalam urutan status (Selesai/Tidak Lengkap)

0
Jimmy Dobson 4 Januari 2021, 20:28

3 jawaban

Jawaban Terbaik

Sudahkah Anda mencoba melakukan pemilihan dari tampilan Anda?

SELECT V.* FROM YourView AS V
0
Sergey 4 Januari 2021, 17:31

Tampilan tidak akan mengembalikan baris jika ada gabungan yang gagal -- ini biasanya karena salah satu tabel kosong atau Anda menggunakan kunci join yang salah.

Juga, order by tidak sesuai dalam tampilan. Anda harus menghapusnya dan top (100) percent.

0
Gordon Linoff 4 Januari 2021, 17:30

Jika Anda akan menggunakan INNER JOIN maka pastikan bahwa nilainya ada di kolom tabel kiri dan kanan. Mari kita ambil contoh join pertama yang Anda miliki

dbo.Ticket_T INNER JOIN
    dbo.Status_T ON dbo.Ticket_T.ticketStatus = dbo.Status_T.ticketStatus

Misalkan ticketStatus pada tabel Ticket_T adalah Terjual maka harus ada nilai ticketStatus yang sama pada tabel Status_T agar baris yang digabungkan muncul.

Jika Anda masih ingin melanjutkan penggabungan meskipun tidak ada nilai yang cocok di kedua tabel, Anda dapat mengganti INNER JOIN dengan LEFT OUTER JOIN.

Gabung Luar Kiri: Mengembalikan semua baris dari tabel KIRI dan catatan yang cocok di antara kedua tabel.

Dan buat kueri Anda seperti ini:

SELECT    TOP (100) PERCENT dbo.Ticket_T.ticketID, dbo.Ticket_T.assignedDate, dbo.Ticket_T.ticketStatus, dbo.Ticket_T.ticketPriority, dbo.Ticket_T.ticketETA, dbo.Ticket_T.ticketFlag, dbo.Ticket_T.userID, dbo.Ticket_T.staffID, 
           dbo.User_T.userID AS Expr1, dbo.Staff_T.staffID AS Expr2, dbo.Staff_T.staffName, dbo.User_T.categoryType, dbo.User_T.userDate, dbo.User_T.userDescription, dbo.User_T.userName, dbo.Status_T.ticketStatus AS Expr3, 
           dbo.Staff_T.staffRole
FROM     dbo.Ticket_T LEFT OUTER JOIN
         dbo.Status_T ON dbo.Ticket_T.ticketStatus = dbo.Status_T.ticketStatus LEFT OUTER JOIN
         dbo.User_T ON dbo.Ticket_T.userID = dbo.User_T.userID LEFT OUTER JOIN
         dbo.Staff_T ON dbo.Ticket_T.staffID = dbo.Staff_T.staffID
ORDER BY dbo.Ticket_T.ticketStatus
0
Sirch Dcmp 4 Januari 2021, 18:08