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 |
|
Maverick_
Posting Yak Master
107 Posts |
Posted - 2010-01-26 : 09:43:41
|
Hi there.I have this query that is supposed to show a message when it finds something with a measurement of zero.The query works but I don't understand WHY it works, especially to do with where CAST has been applied to the code to convert it to VARCHAR.Why is it that it gives me a error message when I remove the CAST, the brackets surrounding the convert and the VARCHAR as part of the code?The error message is: "Cannot convert is zero please set this to the to a numeric(30,6)xxxxxxxxxxxxxxxxxxxxxxxxxxI have three columns:Site Code (Type: CHAR)Asset Number (DECIMAL)Message Textxxxxxxxxxxxxxxxxxxxxxxxxxx[b]The Query:[b/]SELECT feature.site_code, feature.plot_number, ('The measurement ' + measurement_type.measurement_name + ' for Feature with Site Code ' + feature.site_code + ' and Plot Number ' + CAST(feature.plot_number as VARCHAR) + ' is zero please set this to the correct value') as message_textFROM feature, feat_measurement, measurement_typeWHERE feature.site_code = feat_measurement.site_code AND feature.plot_number = feat_measurement.plot_number AND feat_measurement.measurement_code = measurement_type.measurement_code AND feat_measurement.feature_quantity = 0---------------------------------------------I know its related to the data type Decimal for Plot number but I can't quite grasp the full picture of the error and how it links to the data types.If anyone can help I'd really really appreciate it. M |
|
|
X002548
Not Just a Number
15586 Posts |
Posted - 2010-01-26 : 09:48:58
|
| Cast converts your number into a char to it can be included in a string...And that's not an error message, it's the output of the queryAnd the reason isfeat_measurement.feature_quantity = 0Which is funny because has nothing to do withfeature.plot_numberEDIT: Do you know who wrote this?Plus it would be better to write it in ANSI SQL Joins...CAST happens to be ANSI...usually we use CONVERT..mostly cause of DatesBrett8-)Hint: Want your questions answered fast? Follow the direction in this linkhttp://weblogs.sqlteam.com/brettk/archive/2005/05/25/5276.aspxAdd yourself!http://www.frappr.com/sqlteam |
 |
|
|
Maverick_
Posting Yak Master
107 Posts |
Posted - 2010-01-26 : 09:58:12
|
| Hi Brett thanks for the reply.Yep you are right, on the surface the measurement quantity has nothing to do with plot_number, its three waya part of a relationship between feature table and feat_measurement and measurement_code table where the zero is just part of the qualification.Does this mean I can use CAST to convert a date data type into a string too? For example in my error message I want it to show the date when that item was created(?) |
 |
|
|
russell
Pyro-ma-ni-yak
5072 Posts |
Posted - 2010-01-26 : 10:01:05
|
| "Does this mean I can use CAST to convert a date data type into a string too? For example in my error message I want it to show the date when that item was created(?)"yes |
 |
|
|
Maverick_
Posting Yak Master
107 Posts |
Posted - 2010-01-26 : 10:05:28
|
Thank you! |
 |
|
|
Kristen
Test
22859 Posts |
Posted - 2010-01-26 : 10:24:04
|
| I think that CONVERT() is more normally used to convert a DateTime datatype to a String (than CAST) because CONVERT() can take an extra parameter to indicate what formatting style you want (the SQL Documentation BooksOnline has the details) |
 |
|
|
X002548
Not Just a Number
15586 Posts |
Posted - 2010-01-26 : 10:37:32
|
quote: Originally posted by Kristen I think that CONVERT() is more normally used to convert a DateTime datatype to a String (than CAST) because CONVERT() can take an extra parameter to indicate what formatting style you want (the SQL Documentation BooksOnline has the details)
BRILLIANT!!!!!quote: Originally posted by X002548CAST happens to be ANSI...usually we use CONVERT..mostly cause of DatesBrett8-)
Brett8-)Hint: Want your questions answered fast? Follow the direction in this linkhttp://weblogs.sqlteam.com/brettk/archive/2005/05/25/5276.aspxAdd yourself!http://www.frappr.com/sqlteam |
 |
|
|
X002548
Not Just a Number
15586 Posts |
|
|
|
|
|