Wrox Programmer Forums
|
SQL Server 2000 General discussion of Microsoft SQL Server -- for topics that don't fit in one of the more specific SQL Server forums. version 2000 only. There's a new forum for SQL Server 2005.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the SQL Server 2000 section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
 
Old April 18th, 2007, 03:32 AM
Friend of Wrox
 
Join Date: Jan 2006
Posts: 131
Thanks: 10
Thanked 0 Times in 0 Posts
Default Update query problem

Hi,

I'm using SQL 2000, Query Analyser.

I have a table 'dbo.progress_movhdr_NW.' that contains a Date field [Movement Date-New] format is 'dd/mm/yyyy' and a Year field [MAT Year] format is 'yyyy'. I need to populate/update the Year field, depending on the value held in the Date field (the Year field only contians Nulls at present).

[Movement Date-New] is datetime
[MAT Year] is varchar

The following code doesn't work. I'm obviously doing something wrong!!

Code:
UPDATE dbo.progress_movhdr_NW
SET dbo.progress_movhdr_NW.[MAT Year] = 
    CASE
         WHEN dbo.progress_movhdr_NW.[Movement Date-New]
                BETWEEN '01/01/1993' AND '17/09/1994' THEN '1994'
         WHEN dbo.progress_movhdr_NW.[Movement Date-New]
         BETWEEN '18/09/1994' AND '16/09/1995' THEN '1995'
    WHEN dbo.progress_movhdr_NW.[Movement Date-New]
         BETWEEN '17/09/1995' AND '13/09/1996' THEN '1996'
    WHEN dbo.progress_movhdr_NW.[Movement Date-New]
         BETWEEN '14/09/1996' AND '13/09/1997' THEN '1997'
    WHEN dbo.progress_movhdr_NW.[Movement Date-New]
         BETWEEN '14/09/1997' AND '12/09/1998' THEN '1998'
    WHEN dbo.progress_movhdr_NW.[Movement Date-New]
         BETWEEN '13/09/1998' AND '18/09/1999' THEN '1999'
    WHEN dbo.progress_movhdr_NW.[Movement Date-New]
         BETWEEN '19/09/1999' AND '16/09/2000' THEN '2000'
    WHEN dbo.progress_movhdr_NW.[Movement Date-New]
         BETWEEN '17/09/2000' AND '15/09/2001' THEN '2001'
    WHEN dbo.progress_movhdr_NW.[Movement Date-New]
         BETWEEN '16/09/2001' AND '14/09/2002' THEN '2002'
    WHEN dbo.progress_movhdr_NW.[Movement Date-New]
         BETWEEN '15/09/2002' AND '13/09/2003' THEN '2003'
    WHEN dbo.progress_movhdr_NW.[Movement Date-New]
         BETWEEN '14/09/2003' AND '18/09/2004' THEN '2004'
    WHEN dbo.progress_movhdr_NW.[Movement Date-New]
         BETWEEN '19/09/2004' AND '17/09/2005' THEN '2005'
    WHEN dbo.progress_movhdr_NW.[Movement Date-New]
         BETWEEN '18/09/2005' AND '16/09/2006' THEN '2006'
    WHEN dbo.progress_movhdr_NW.[Movement Date-New]
         BETWEEN '17/09/2006' AND '15/09/2007' THEN '2007'
    ELSE '????'
END
Can anyone help, please?

Thanks in advance.




Neal

A Northern Soul
__________________
Neal

A Northern Soul
 
Old April 18th, 2007, 04:17 AM
Friend of Wrox
 
Join Date: Jun 2003
Posts: 2,480
Thanks: 0
Thanked 1 Time in 1 Post
Default

Neal,

What is the DataType of dbo.progress_movhdr_NW.[Movement Date-New]? If it is a DateTime Type then
Code:
UPDATE dbo.progress_movhdr_NW
SET dbo.progress_movhdr_NW.[MAT Year] = DATEPART(yyyy, dbo.progress_movhdr_NW.[Movement Date-New])

----------- OR

UPDATE dbo.progress_movhdr_NW
SET dbo.progress_movhdr_NW.[MAT Year] = Year(dbo.progress_movhdr_NW.[Movement Date-New])
This should do...

Cheers.

_________________________
- Vijay G
Strive for Perfection





Similar Threads
Thread Thread Starter Forum Replies Last Post
Update Query Neal SQL Server 2000 2 April 19th, 2007 12:03 PM
I solved insert query.now see this Update Query. [email protected] VB.NET 2002/2003 Basics 2 September 21st, 2006 12:48 AM
Update query edcaru Access 3 June 14th, 2004 03:04 AM
Data Driven Query Update Row Problem Hardache SQL Server DTS 1 June 10th, 2004 08:42 AM
Update query how to? vickriz Access 1 August 26th, 2003 09:44 AM





Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.