|
Break it into 4 queries, 1 for each time period doing the appropriate aggregation for each query, include the common key. Then join the 4 queries into 1 using the common key. I would use table vars to hold the temp data.
BTW I would not put my company name in your sig, it can be incorrectly construed (look it up).
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Hi
how do i make sql statement to page the rows six per result
|
|
|
|
|
Hi,
There's an example over here[^]
I are Troll
|
|
|
|
|
Hi All,
I have to write a query in SQL Server 2000/2005/2008 in such a way that, "the sum of 1st Column 2nd row and 2nd Column 1st row is placed in 2nd column 2nd row".
Any kind of link or any suggestion will be very very helpfull.
Thanks & Regards,
Md. Abdul Aleem
NIIT technologies
|
|
|
|
|
In other words, it sounds like column 2 is a running total of column 1. There's not a real elegant way that I know of, but it is a common problem.
Did you try a search for SQL running totals[^]?
CQ de W5ALT
Walt Fair, Jr., P. E.
Comport Computing
Specializing in Technical Engineering Software
|
|
|
|
|
Thanks, I got it in Crystal Reports only. It is fixed and your link also helps me a lot if I need it in SQL Server.
Thanks & Regards,
Md. Abdul Aleem
NIIT technologies
|
|
|
|
|
Got myself a head scratcher here. I'm needing to pull employee names and pictures from a database, which I can do with the following select:
SELECT dbo.vwEmployee.BadgeName, dbo.Image.Photo, dbo.vwEmployee.Updated
FROM dbo.Image INNER JOIN
dbo.vwEmployee ON dbo.Image.OwnerGUID = dbo.vwEmployee.OwnerGUID
WHERE (dbo.vwEmployee.Department = 'IT')
Problem is that the application that was used to store the employee information and photos also keeps every photo taken of the employee. I want to be able to return only the row with the most recent photo taken (or the first instance of the most recent update since some have multiple records with the same updated date). I know I can do this with the application I am writing to use this query, but I would rather let the SQL Server do most of the heavy lifting and to further narrow down my results.
|
|
|
|
|
Does the Image table have multiple records or multiple columns for the pictures? If record then does it have a time stamp? If so use a subquery to find the max time and pass that picture.
|
|
|
|
|
If you have a date field, then use TOP 1 and ORDER BY update_date DESC .
CQ de W5ALT
Walt Fair, Jr., P. E.
Comport Computing
Specializing in Technical Engineering Software
|
|
|
|
|
You need to do a sub-select to get a list of the employees and the date of their most recent picture. Then you join to that on the EmployeeID (OwnerGuid) and the date.
select c.BadgeName, a.Photo, c.Updated
from Image a
join (select OwnerGUID, MAX(PictureDate) PictureDate from Image group by OwnerGUID) b on a.OwnerGUID = b.OwnerGUID and a.PictureDate = b.PictureDate
join vwEmployee c ON a.OwnerGUID = c.OwnerGUID
where c.Department = 'IT'
|
|
|
|
|
I have two tables: table1 field contains the ID type UniqueIdentifier and table2 contains ID as foreign key when inserting values is not the same values filled in the two table table1 in this ID is filled eg e210d5ad-BC41-439th-b8e8-e8ed775ee932, and in table 2 it is filled with zero
So how do I do to unify all relationships necessary is active
the two queries are:
CREATE Procedure [dbo].[Insert1](@ID uniqueidentifier, @name varchar(10),@tel varchar(10))
AS
INSERT INTO [table1] ([ID], [name], [tel])
VALUES (NEWID(), @name, @tel)
CREATE Procedure [dbo].[Insert2](@ID uniqueidentifier, @cmd1 varchar(20))
AS
INSERT INTO [Table2] ([ID], [cmd1])
VALUES (@ID, @cmd1)
table1: ID Primary key
Table2:ID foreign Key
Thank you very much for your help
|
|
|
|
|
You would need to either wrap the inserts together and share the id created between them or return the value created by the first query and pass it into the second as a parameetr. I figure that your probably not doing a 1:1 insert here (ie: Theer are goign to be more inserts intot he second table as details?) so I would just return the ID created in the first insert and then pass it into the second as an arg myself.
|
|
|
|
|
Since a UniqueIdentifier is really unique (in contrast to a simple autoincrement integer), you can assign it to the object in your program before inserting it to the database.
|
|
|
|
|
You use NEWID() to generate the new ID key, you need to trap this and pass it back to the client so it can be put into @ID for the second insert.
Insert1
Does not need @ID passed in as it is not used.
Create a new ID @CreatedID in the proc but outside the insert statement
Insert the record using the @CreatedID
After the insert select @CreatedID as NewID will return it to the client
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Hi
Is it possible to create a Ms Excel form where I can enter data which should be automatically enter in an existing Ms Access database?
Thank you in advance
|
|
|
|
|
The answer is yes (might require some vba code). But raises the question, Why not use a form in Access?
PS I'm a bit rusty on Excel/Access programming so don't ask me how. I know it can be done.
Regards
David R
---------------------------------------------------------------
"Every program eventually becomes rococo, and then rubble." - Alan Perlis
The only valid measurement of code quality: WTFs/minute.
|
|
|
|
|
Are you receiving any revenue from Mr BB[^]?
It's time for a new signature.
|
|
|
|
|
I think you meant to post this in site bugs & suggestions... at least that way on of the CP team will actually see it.
|
|
|
|
|
I wondered where this had gone to. If I was into drugs I'd at least have an excuse for such carelessness.
It's time for a new signature.
|
|
|
|
|
My sql function is
ALTER FUNCTION[dbo].[FN_ATTENDANCE_REPORT_DATES] ( @EMPID varchar(50) ,@FROMDATE datetime,@TODATE
datetime)RETURNS TABLE
AS RETURN(
SELECT DR_EmployeeID AS EMPID,EM_FirstName+EM_MiddleName+EM_LastName AS EMPNAME,ED_Department AS DEPARTMENT,
ISNULL(CONVERT(VARCHAR,DR_TimeIn,103),'Not checked')AS DATEOFWORK,
SUBSTRING(CONVERT(VARCHAR,ES_TimeIn,9),14,15)+'-'+SUBSTRING(CONVERT(VARCHAR,ES_TimeOut,9),14,15)AS
SHIFTTIME,
ISNULL(SUBSTRING(CONVERT(NVARCHAR,MIN(DR_TimeIn), 22), 10, 11),'Not checked')
AS FIRSTTIMEIN,
ISNULL(SUBSTRING(CONVERT(NVARCHAR,MAX(DR_TimeOut), 22), 10, 11),'Not checked')
AS LASTTIMEOUT,
ISNULL(CONVERT(VARCHAR(5),DATEDIFF(SS,DR_TimeIn,DR_TimeOut)/3600)
+':'+
CONVERT(VARCHAR(5),DATEDIFF(SS,DR_TimeIn,DR_TimeOut )%3600/60)
+':'+
CONVERT(VARCHAR(5),(DATEDIFF(SS,DR_TimeIn,DR_TimeOut)%60)),'0 ')AS TOTALHOURS
FROM
SG_Daily_Register INNER JOIN SG_Emp_Shift ON SG_Daily_Register.DR_ShiftID=SG_Emp_Shift.ES_ShiftID
INNER JOIN SG_Emp_Master ON SG_Daily_Register.DR_EmployeeID=SG_Emp_Master.EM_EmployeeID
INNER JOIN SG_Emp_Department ON SG_Emp_Master.EM_DeptID=SG_Emp_Department.ED_DeptID
WHERE DR_EmployeeID=@EMPID AND CONVERT(VARCHAR,DR_TimeIn,101) BETWEEN @FROMDATE AND @TODATE
GROUP BY
DR_EmployeeID,EM_FirstName+EM_MiddleName+EM_LastName,ED_Department,ES_TimeIn,ES_TimeOut,DR_TimeIn,DR_TimeOut
)
I got output as
FIRSTTIMEIN LASTTIMEOUT
2833020 PreethyS Development 02/12/2010 7:00:00:000PM-3:00:00:000AM 7:10:09 PM 9:40:45 PM 2:30:36
2833020 PreethyS Development 02/12/2010 7:00:00:000PM-3:00:00:000AM 10:20:32 PM 12:15:27 AM 1:54:55
2833020 PreethyS Development 03/12/2010 7:00:00:000PM-3:00:00:000AM 12:23:25 AM 1:24:23 AM 1 :58
2833020 PreethyS Development 03/12/2010 7:00:00:000PM-3:00:00:000AM 1:32:43 AM 3:45:54 AM 2:13:11
But I have to get output as
2833020 PreethyS Development 02/12/2010 7:00:00:000PM-3:00:00:000AM 7:10:09 PM 12:15:27 AM 4:26:26
2833020 PreethyS Development 03/12/2010 7:00:00:000PM-3:00:00:000AM 12:23:25 AM 3:45:54 AM 3:14:09
pls help
|
|
|
|
|
could do with knowing the following
1. what version of SQL?
2. Sample Data
3. Tables (DDL)
As barmey as a sack of badgers
|
|
|
|
|
This is the 3rd question on the same topic. You should stick to 1 thread for 1 topic. Ive also pointed out the forum guidlines which ask you to use descriptive subject lines . "sql function" does not qualify as descriptive in a sql forum. The forum guidlines should also include the request to put code within formatted code blocks for ease of reading (if it doesnt it should).
Furthermore, you have not given any response to the answers youve been given below, so we have no idea if were even on the right track.
Lastly, Ive already answered this question below.
|
|
|
|
|
I required only time in select query from datetime field in format like:
2:20:55 AM.
Pls help me
|
|
|
|
|
That is presentation logic, use your presentation layer to format a datetime instance appropriately.
This should start you off:
var now = DateTime.Now;
Console.WriteLine(now.ToString("h:mm:ss"));
More info: Date / Time format strings[^]
edit: read the forum guidlines for posting messages; pay specific attention to the subject line requirements.
|
|
|
|
|
He may have a specific (and valid) reason for needing times in his sql.
"If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair.
nils illegitimus carborundum
me, me, me
|
|
|
|