Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
dr223
Constraint Violating Yak Guru
444 Posts |
Posted - 2012-08-10 : 07:28:37
|
Hi, I have the following code, SELECT GPRDTech.gprdsql.TblPracDetails.prac_no, GPRDTech.gprdsql.TblPracDetails.GoldPracID, GPRDTech.gprdsql.TblPracDetails.practice_name, GPRDTech.gprdsql.TblPracDetails.prac_status, dbo.TblPracExclude.prac_enabledFROM GPRDTech.gprdsql.TblPracDetails LEFT OUTER JOIN dbo.TblPracExclude ON GPRDTech.gprdsql.TblPracDetails.prac_no = dbo.TblPracExclude.prac_noWHERE (GPRDTech.gprdsql.TblPracDetails.prac_status <> dbo.TblPracExclude.prac_status) OR (GPRDTech.gprdsql.TblPracDetails.practice_name <> dbo.TblPracExclude.prac_name) OR (GPRDTech.gprdsql.TblPracDetails.GoldPracID <> dbo.TblPracExclude.GoldpracID) It is working now; though, the problwm is in ; GPRDTech.gprdsql.TblPracDetails.GoldPracID = values 1, 2, 3 for prac_no 10,11,12dbo.TblPracExclude.GoldpracID = values NULL, NULL, NULL for prac_no 10,11, 12. Why dont prac_no 10, 11, 12 dont come up in the output result, as surely, it fulfils the creteria GPRDTech.gprdsql.TblPracDetails.GoldPracID <> dbo.TblPracExclude.GoldpracIDThanksMany thanks |
|
|
nigelrivett
Master Smack Fu Yak Hacker
3385 Posts |
Posted - 2012-08-10 : 07:40:35
|
| depends on the format of the caracter stringconvert(nvarchar(20),GPRDTech.gprdsql.TblPracDetails.GoldPracID) = dbo.TblPracExclude.GoldpracID==========================================Cursors are useful if you don't know sql.SSIS can be used in a similar way.Beer is not cold and it isn't fizzy. |
 |
|
|
dr223
Constraint Violating Yak Guru
444 Posts |
Posted - 2012-08-10 : 07:46:08
|
Ok - Changed to as suggested and retained the nvarchar datatype; SELECT GPRDTech.gprdsql.TblPracDetails.prac_no, GPRDTech.gprdsql.TblPracDetails.GoldPracID, GPRDTech.gprdsql.TblPracDetails.practice_name, GPRDTech.gprdsql.TblPracDetails.prac_status, dbo.TblPracExclude.prac_enabledFROM GPRDTech.gprdsql.TblPracDetails LEFT OUTER JOIN dbo.TblPracExclude ON GPRDTech.gprdsql.TblPracDetails.prac_no = dbo.TblPracExclude.prac_noWHERE (GPRDTech.gprdsql.TblPracDetails.prac_status <> dbo.TblPracExclude.prac_status) OR (GPRDTech.gprdsql.TblPracDetails.practice_name <> dbo.TblPracExclude.prac_name) OR (CONVERT(nvarchar(50), GPRDTech.gprdsql.TblPracDetails.GoldPracID) <> dbo.TblPracExclude.GoldpracID) GPRDTech.gprdsql.TblPracDetails.GoldPracID = values 1, 2, 3 for prac_no 10,11,12dbo.TblPracExclude.GoldpracID = values NULL, NULL, NULL for prac_no 10,11, 12. Why dont prac_no 10, 11, 12 come up in the output result, as surely, it fulfils the criteria GPRDTech.gprdsql.TblPracDetails.GoldPracID <> dbo.TblPracExclude.GoldpracIDNote: When I use the = instead of <> it pulls down records when GPRDTech.gprdsql.TblPracDetails.GoldPracID = dbo.TblPracExclude.GoldpracID but the other not equal doesnt workThanks |
 |
|
|
nigelrivett
Master Smack Fu Yak Hacker
3385 Posts |
Posted - 2012-08-10 : 09:21:19
|
| Because 1 <> null returns null which is interpreted as false.try(CONVERT(nvarchar(50), GPRDTech.gprdsql.TblPracDetails.GoldPracID) <> dbo.TblPracExclude.GoldpracIDor (GPRDTech.gprdsql.TblPracDetails.GoldPracID is null and dbo.TblPracExclude.GoldpracID is not null)or (GPRDTech.gprdsql.TblPracDetails.GoldPracID is not null and dbo.TblPracExclude.GoldpracID is null))or maybecoalesce(CONVERT(nvarchar(50), GPRDTech.gprdsql.TblPracDetails.GoldPracID),'-1') <> coalesce(dbo.TblPracExclude.GoldpracID,'-1')==========================================Cursors are useful if you don't know sql.SSIS can be used in a similar way.Beer is not cold and it isn't fizzy. |
 |
|
|
|
|
|
|
|