2013-04-29 18 views
6

Farklı tip alanları ile birleştirilen iki tablodan bilgileri görüntüleyen bir görünüm oluşturmak istiyorum. Bir alan nvarchar ve diğeri int. Biliyorum, bir türü diğerine dönüştürmem gerekiyor ama nasıl yapılacağını bilmiyorum. Herhangi bir yardım büyük takdir edilecektir.Görünümdeki SQL tablolarına katılmak için nvarchar'ı int'ye dönüştürün

SELECT dbo.co.co_num, dbo.pck_hdr.weight, dbo.STR_ShipTrack.TrackingNumber 
    FROM dbo.co 
INNER JOIN dbo.pck_hdr ON dbo.co.co_num = dbo.pck_hdr.co_num INNER JOIN dbo.STR_ShipTrack ON dbo.pck_hdr.pack_num = dbo.STR_ShipTrack.Reference1 

cevap

15

Kodunuza bakarak, ne yapmanız gerektiğini söyleyemem.

SQL motoru karşılaştırmak için otomatik dönüşümleri yapacağız. Ancak, karakter alanını bir tamsayıya dönüştürmeye karar verebilirseniz - ve sonra bir hata elde edin.

cast(IntField as nvarchar(255)) 

uzunluğu önemli değildir bir nvarchar() karşılaştırma için:

Yani, sadece nvarchar için int alanını attı. Sorgunuzun olarak

, sen yerini alacak:

ON dbo.pck_hdr.pack_num = dbo.STR_ShipTrack.Reference1 

ile: Ben eksik açıklaması için özür

ON cast(dbo.pck_hdr.pack_num as nvarchar(255)) = dbo.STR_ShipTrack.Reference1 
+0

. Dbo.pck_hdr.pack_num int ve dbo.STR_ShipTrack.Reference1 varchar (25) alanıdır. Lütfen kodu nasıl bir araya getirmem gerektiğini gösterir misiniz? –

+1

Harika çalıştı. Bunun için teşekkürler. Bugün bir şey öğreniyorum. –

İlgili konular