Click here to monitor SSC
SQLServerCentral is supported by Red Gate Software Ltd.
 
Log in  ::  Register  ::  Not logged in
 
 
 
        
Home       Members    Calendar    Who's On


Add to briefcase

Query database by date and send results to table Expand / Collapse
Author
Message
Posted Tuesday, April 22, 2014 6:03 AM
Grasshopper

GrasshopperGrasshopperGrasshopperGrasshopperGrasshopperGrasshopperGrasshopperGrasshopper

Group: General Forum Members
Last Login: Monday, April 28, 2014 6:46 AM
Points: 19, Visits: 37
I'm a bit of a SQL newb but have been tasked with coming up with some code to retrieve values from a historian database. I'm retrieving the name of an object (tag) and its value at a specific time every month of the year. However, the year will be user defined parameter coming from a report. So if the user selects 2014 it should query on 1/1/2014,2/1/2014 and so on.

I came up with the simple part of the query which is looking up the tag names and associated values:

SELECT Tagname,value
From runtime.dbo.History
WHERE Tagname IN ('Tag1', 'Tag2')
and wwVersion = 'Latest'
and DateTime = @Date

Here are the issues I need to solve:
1. I can manually set the @Date but I'd like to have it do whats described above. I'm thinking some type of loop might be used?
2. I'm not sure how to output it into table format to look like:

Tag 1, (jan value), (feb value), (mar value), etc...
Tag 2, (jan value), (feb value), (mar value), etc...

Any help would be appreciated. Thanks!
Post #1563797
Posted Tuesday, April 22, 2014 8:32 AM


SSChampion

SSChampionSSChampionSSChampionSSChampionSSChampionSSChampionSSChampionSSChampionSSChampionSSChampion

Group: General Forum Members
Last Login: Today @ 2:34 PM
Points: 13,481, Visits: 12,342
You definitely don't need a loop for this. You can do this using a tally or a calendar table (not totally sure which one fits best). In order to help we will need a few things:

1. Sample DDL in the form of CREATE TABLE statements
2. Sample data in the form of INSERT INTO statements
3. Expected results based on the sample data

Please take a few minutes and read the first article in my signature for best practices when posting questions.


_______________________________________________________________

Need help? Help us help you.

Read the article at http://www.sqlservercentral.com/articles/Best+Practices/61537/ for best practices on asking questions.

Need to split a string? Try Jeff Moden's splitter.

Cross Tabs and Pivots, Part 1 – Converting Rows to Columns
Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs
Understanding and Using APPLY (Part 1)
Understanding and Using APPLY (Part 2)
Post #1563880
Posted Thursday, September 11, 2014 10:32 PM
SSC Journeyman

SSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC JourneymanSSC Journeyman

Group: General Forum Members
Last Login: Yesterday @ 6:19 AM
Points: 76, Visits: 167
Can't tell exactly without the DDL as mentioned by Sean.

But as you said you need get all results when a user inputs a date and neet to search with Year part. One option is to do like this.

declare @date datetime;--'11-2-2014'

SELECT Tagname,value
From runtime.dbo.History
WHERE Tagname IN ('Tag1', 'Tag2')
and wwVersion = 'Latest'
and
DATEPART(YY,datetime)= DATEPART(YY,@date)

Post #1612882
« Prev Topic | Next Topic »

Add to briefcase

Permissions Expand / Collapse