KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have two tables: Application applicationid (int) applicationname (varchar) isavailable (bit) and Holidays applicationid (int) holidaydate (datetime) I need to get the isavailable flag for any given applicationname but it should only return if the day if is not a holiday. The isavailable flag is independent of holidays - it is only set if there are system-wide problems, not on a set schedule. I initially had something like: select top 1 apps.isavailable from dbo.Applications apps, dbo.Holidays hol where apps.applicationid = hol.applicationid and apps.applicationname = @appname and ((datediff(dd,getdate(),hol.holidaydate)) != 0) but that was returning records even if today was a holiday because the other holiday dates don't equal today. I tried and (CONVERT(VARCHAR,getdate(),101)) not in (CONVERT(VARCHAR,hol.holidaydate,101)) (it is on SQL Server 2005, so there is no Date type so I have to convert it) but again, it was returning records even if today was a holiday. How can I structure this query using a "not in" or "except" clause (or something else) to only return a record if today isn't a holiday? Update I don't need a list of all applicationnames that don't have a holiday - I need a record for the specified apps.applicationname. The answers below only return the application names that don't have a holiday on today. The query should return the isavailable flag if it is not a holiday, or else return no records if it is a holiday. I don't care about the other applications. Also, what if I added a table like: HoursOfOperations applicationid (int) mondayopen (datetime) mondayclose (dat
Tags (comma-separated)
Save Edits
Cancel