MS SQL Development
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me
Go Back   Dev Shed ForumsDatabasesMS SQL Development

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
  #1  
Old September 29th, 2004, 01:37 PM
lauramccord lauramccord is offline
Contributing User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: May 2004
Posts: 180 lauramccord User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 1 Day 9 h 3 m 58 sec
Reputation Power: 5
Need help with my insert statement

I need an insert statement that will grab the maximum of TimeGenerated from the Events table and insert it into LastEventTime in the Host Table. But it has to be inserted based on the relationship of SystemNetName.

For Example,

Host Table
--------------------------------------
SystemNetName LastEventTime
Tweety 9/24/2004
Sylvester 9/25/2004

Events Table
----------------------------------------
SystemNetName TimeGenerated
Tweety 9/24/2004
Tweety 8/26/2004
Sylvester 8/21/2004
Sylvester 9/25/2004
Sylvester 7/5/2004


This is what I had so far but didn't work:
Insert into host(LastEventTime)
Select(Max(TimeGenerated) ) from Events Where
Events.SystemNetName = Host.SystemNetName


Any Ideas?

Reply With Quote
  #2  
Old September 29th, 2004, 03:53 PM
Scorpions4ever's Avatar
Scorpions4ever Scorpions4ever is offline
Banned ;)
Dev Shed God 6th Plane (7500 - 7999 posts)
 
Join Date: Nov 2001
Location: Glendale, Los Angeles County, California, USA
Posts: 7,536 Scorpions4ever User rank is Lieutenant General (80000 - 90000 Reputation Level)Scorpions4ever User rank is Lieutenant General (80000 - 90000 Reputation Level)Scorpions4ever User rank is Lieutenant General (80000 - 90000 Reputation Level)Scorpions4ever User rank is Lieutenant General (80000 - 90000 Reputation Level)Scorpions4ever User rank is Lieutenant General (80000 - 90000 Reputation Level)Scorpions4ever User rank is Lieutenant General (80000 - 90000 Reputation Level)Scorpions4ever User rank is Lieutenant General (80000 - 90000 Reputation Level)Scorpions4ever User rank is Lieutenant General (80000 - 90000 Reputation Level)Scorpions4ever User rank is Lieutenant General (80000 - 90000 Reputation Level)Scorpions4ever User rank is Lieutenant General (80000 - 90000 Reputation Level)Scorpions4ever User rank is Lieutenant General (80000 - 90000 Reputation Level)Scorpions4ever User rank is Lieutenant General (80000 - 90000 Reputation Level)Scorpions4ever User rank is Lieutenant General (80000 - 90000 Reputation Level)Scorpions4ever User rank is Lieutenant General (80000 - 90000 Reputation Level)Scorpions4ever User rank is Lieutenant General (80000 - 90000 Reputation Level) 
Time spent in forums: 1 Month 1 Day 6 h 51 m 7 sec
Reputation Power: 876
Something like this perhaps
Code:
INSERT INTO HostTable (
SystemNetName, LastEventTime
)
SELECT SystemNetName, MAX(TimeGenerated)
FROM EventsTable
GROUP BY EventsTable.SystemNetName
__________________
Up the Irons
What Would Jimi Do? Smash amps. Burn guitar. Take the groupies home.
"Death Before Dishonour, my Friends!!" - Bruce D ickinson, Iron Maiden Aug 20, 2005 @ OzzFest
Down with Sharon Osbourne

Puzzle of the Month solved by Keath and KevinADC, superior perl programmers of the month
Looking for a perl job with kick-*** programmers in a well-known NASDAQ listed tech company with branches in the US and Europe? We're hiring. PM me for details. Requirements

Reply With Quote
  #3  
Old September 30th, 2004, 08:05 AM
lauramccord lauramccord is offline
Contributing User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: May 2004
Posts: 180 lauramccord User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 1 Day 9 h 3 m 58 sec
Reputation Power: 5
I tried it and it didn't work. Primarily, I can't insert SystemNetName into the Host table because Host.SystemNetName is a primary key and Events.SystemNetName is the foreign key.

I pulled out the SystemNetName out of the 'Insert' and 'Select' and in the 'from' I did a left join on SystemNetName. Like this:

Code:
 INSERT INTO Host (LastEventTime)
SELECT     MAX(Events.TimeGenerated) AS Expr1
FROM         Events LEFT OUTER JOIN
                      Host ON Host.SystemNetName = Events.SystemNetName
GROUP BY Events.SystemNetName


Logically it makes sense but I am getting an error: Cannot insert the value NULL into column 'SystemNetName'
Yet, I am not trying to insert into the SystemNetName column.

Thanks,
Laura

Reply With Quote
  #4  
Old September 30th, 2004, 08:55 AM
Username=NULL Username=NULL is offline
Contributing User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Apr 2004
Location: TX
Posts: 249 Username=NULL User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 1 Day 7 h 6 m 42 sec
Reputation Power: 5
Send a message via Yahoo to Username=NULL
Laura,

What's you're reasoning in using an Insert? If there are new times for say "Tweety" always coming up, then you're trying to only keep 1 record for that NetName in your table, and simply "insert" the most recent date for that name, no? Sounds like you should be using an Update instead. Else, I think you have a flaw in the table design.

Reply With Quote
  #5  
Old September 30th, 2004, 09:47 AM
lauramccord lauramccord is offline
Contributing User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: May 2004
Posts: 180 lauramccord User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 1 Day 9 h 3 m 58 sec
Reputation Power: 5
Yeah, I agree with you. But, don't I still need to insert the most recent time from the Events table into the Host table intially? Then after, I would do an update, correct?

The Events table keeps track of every event that occurs and never gets an update, just an insert and that works fine. Now, it is a matter of getting the most recent time and sticking it into the Host table, then from there the Host table is updated.

-Laura

Reply With Quote
  #6  
Old September 30th, 2004, 11:08 AM
lauramccord lauramccord is offline
Contributing User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: May 2004
Posts: 180 lauramccord User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 1 Day 9 h 3 m 58 sec
Reputation Power: 5
Actually, I don't think I even need to have a LastEventTime field in the Host table. I am creating a web application and it might just be better to sql the Events table for the most recent time of each SystemNetName instead of doing an insert.

Thanks everybody.

-Laura

Reply With Quote
Reply

Viewing: Dev Shed ForumsDatabasesMS SQL Development > Need help with my insert statement


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump


Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 





© 2003-2008 by Developer Shed. All rights reserved. DS Cluster 2 hosted by Hostway