November 17, 2004 at 1:31 pm
I am updating a table from text document - I need to limit the data to only those records that met a certain format criteria. (####-###)
My field for ProjectNum currently contains mixed data -
example:
2787 |
116202 |
119002 |
140302 |
154402 |
155902 |
157602 |
4714001 |
5157001 |
5739001 |
6249001 |
6335001 |
00000-000 |
00000-001 |
00001-001 |
00001-002 |
00001-005 |
00001-011 |
00002-001 |
00002-002 |
CADFileList |
CADFileList |
CINCINNAT |
filelist |
filelist |
NULL |
nzweob |
Shortcut (2) to Forecast |
Shortcut to Forecast |
SLCT1F |
STARBUCKS |
TEST |
TESTX |
The only data I want in my table is the correct ProjectNum = 00002-002.
How do I insure that my data meets this criteria (####-###)
Here is my current query - feel free to make changes accordingly.
Karen
SELECT Q1.ProjectNum,
CURRENT_TIMESTAMP AS DateCreated,
'Import' AS UserCreated,
Q1.DateModified,
'Import' AS UserModified
FROM
(
SELECT Cast(Col004 as varchar(9)) AS ProjectNum, Cast(Col008 as datetime) AS DateModified
FROM CADFileList
WHERE (Col004 IS NOT NULL) OR
(Col004 LIKE '[0-9][0-9][0-9][0-9][0-9][-][0-9][0-9][0-9]%)') or Len(Col004)=9
) Q1
LEFT OUTER JOIN ProjectDemand ON Q1.ProjectNum = ProjectDemand.ProjectNumber
WHERE (ProjectDemand.ProjectNumber IS NULL) OR
(ProjectNum LIKE N'[0-9][0-9][0-9][0-9][0-9][-][0-9][0-9][0-9]%)' or Len(ProjectNum)=9)
November 17, 2004 at 4:15 pm
If the Project Number will "always" contain this format, then you should be able to use the following within your nested SELECT (Q1)
WHERE SUBSTRING( Col004, 5, 1) = '-'
AND ISNUMERIC( SUBSTRING( Col004, 1, 4)
AND ISNUMERIC( SUBSTRING( Col004, 6, 3)
You can determine how many constraints you need, like ISNUMERIC.
I wasn't born stupid - I had to study.
November 18, 2004 at 4:52 pm
I still get an error of Function not found when I parse the follwing query.
SELECT DISTINCT Q1.FilePath, Q1.ProjectNum, Q1.Filetype, Q1.DateModified
FROM (SELECT Col002 AS FilePath, Col004 AS ProjectNum, Col006 AS Filetype, Col008 AS DateModified
FROM CADFileList
WHERE (SUBSTRING(Col004, 5, 1) = '-') AND (ISNUMERIC(SUBSTRING(Col004, 1, 4)) AND (ISNUMERIC(SUBSTRING(Col004, 6, 3)))
Q1 LEFT OUTER JOIN
ImportFileLog ON Q1.ProjectNum + '.txt' = ImportFileLog.FileName
WHERE (ImportFileLog.FileName IS NULL) OR
(Q1.DateModified > ImportFileLog.DateImported)
November 19, 2004 at 4:10 am
To me it looks that when you have a column named ProjectNum and store there a wild mixture of strings, numbers, and combinations, you might need to revise your data model. I suspect you will be in trouble sooner or later with this structure anyway.
--
Frank Kalis
Microsoft SQL Server MVP
Webmaster: http://www.insidesql.org/blogs
My blog: http://www.insidesql.org/blogs/frankkalis/[/url]
Viewing 4 posts - 1 through 4 (of 4 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy