13. marts 2008 - 14:03Der er
5 kommentarer og 1 løsning
joine forskellige datatyper
Hej Jeg har to tabeller jeg gerne vil joine. Desværre har nøgler forskellige datatyper, derfor vil jeg gerne konvertere datatypen i forespørgslen. Jeg har fundet "cast" og "convert" som mulige funktioner, men har ikke lige kunne få lavet den rigtige sql. Kan nogle hjælpe mig?
Det lader til Cast eller convert ikke kan konvertere fra varchar til int. Fra int til varchar virker det.
Desværre får jeg ikke alle forekomster med - men det er måske en en anden fejl?
SELECT * FROM Activities WHERE VendorID = 8 AND PaymentTypeID= 4 AND activityid > 200000 giver 100 rækker MERE end:
SELECT Navision.dbo.[ServicePartner A_S$Sales Invoice Header].Rep_Nr, ServicePartner.dbo.Activities.ActivityID, Navision.dbo.[ServicePartner A_S$Sales Invoice Header].No_, ServicePartner.dbo.Activities.ContactName FROM Navision.dbo.[ServicePartner A_S$Sales Invoice Header] INNER JOIN ServicePartner.dbo.Activities ON Navision.dbo.[ServicePartner A_S$Sales Invoice Header].Rep_Nr = CAST(ServicePartner.dbo.Activities.ActivityID AS CHAR(10)) WHERE ServicePartner.dbo.Activities.VendorID = 8 AND ServicePartner.dbo.Activities.PaymentTypeID = 4 AND ServicePartner.dbo.Activities.ActivityID > 200000
Hvis jeg piller et enkelt rep_nr ud og laver sql forespørgsel, eksisterer nummeret og burde dermed være i BEGGE forespørgsler. Måske udenfor det oprindelige spørgsmål, men vil du kigge på det alligevel? /henrik
giver 100 rækker MERE end:
SELECT Navision.dbo.[ServicePartner A_S$Sales Invoice Header].Rep_Nr, ServicePartner.dbo.Activities.ActivityID, Navision.dbo.[ServicePartner A_S$Sales Invoice Header].No_, ServicePartner.dbo.Activities.ContactName FROM Navision.dbo.[ServicePartner A_S$Sales Invoice Header] INNER JOIN ServicePartner.dbo.Activities ON Navision.dbo.[ServicePartner A_S$Sales Invoice Header].Rep_Nr = CAST(ServicePartner.dbo.Activities.ActivityID AS CHAR(10)) WHERE ServicePartner.dbo.Activities.VendorID = 8 AND ServicePartner.dbo.Activities.PaymentTypeID = 4 AND ServicePartner.dbo.Activities.ActivityID > 200000
Hvis jeg piller et enkelt rep_nr ud og laver sql forespørgsel, eksisterer nummeret og burde dermed være i BEGGE forespørgsler. Måske udenfor det oprindelige spørgsmål, men vil du kigge på det alligevel? /henrik
sorry har gentaget mig selv. Sådan skulle der have stået: Det lader til Cast eller convert ikke kan konvertere fra varchar til int. Fra int til varchar virker det.
Desværre får jeg ikke alle forekomster med - men det er måske en en anden fejl?
SELECT * FROM Activities WHERE VendorID = 8 AND PaymentTypeID= 4 AND activityid > 200000 giver 100 rækker MERE end:
SELECT Navision.dbo.[ServicePartner A_S$Sales Invoice Header].Rep_Nr, ServicePartner.dbo.Activities.ActivityID, Navision.dbo.[ServicePartner A_S$Sales Invoice Header].No_, ServicePartner.dbo.Activities.ContactName FROM Navision.dbo.[ServicePartner A_S$Sales Invoice Header] INNER JOIN ServicePartner.dbo.Activities ON Navision.dbo.[ServicePartner A_S$Sales Invoice Header].Rep_Nr = CAST(ServicePartner.dbo.Activities.ActivityID AS CHAR(10)) WHERE ServicePartner.dbo.Activities.VendorID = 8 AND ServicePartner.dbo.Activities.PaymentTypeID = 4 AND ServicePartner.dbo.Activities.ActivityID > 200000
Hvis jeg piller et enkelt rep_nr ud og laver sql forespørgsel, eksisterer nummeret og burde dermed være i BEGGE forespørgsler. Måske udenfor det oprindelige spørgsmål, men vil du kigge på det alligevel? /henrik
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.