|
As I mentioned creating a foreign key constraint is required for refrential integrety and normally is a good practice. It do have an impact on performance which can be reduced by creating an index. If you craete the index on foreign key it will reduce the lookups.
.AK.
|
|
|
|
|
so declaring it as foreign key is a good practice and will have an impact on the performance but after declaring it do you still recommend to index it or declaring is enough?
Technology News @ www.JassimRahma.com
|
|
|
|
|
Creating a foreign key is not mandatory but is advised to create. Here[^] is a link which tells about the importance of it.
Now here[^] is another article which tells about refrential integrity and performance degradation which might give you a bit more idea about this.
.AK.
|
|
|
|
|
Great
Thanks
Technology News @ www.JassimRahma.com
|
|
|
|
|
|
Hello,
in some table, how can i perform a group by not by the column string but only by the letter of that column
thanks
nelsonpaixao@yahoo.com.br
trying to help & get help
|
|
|
|
|
Yes.
GROUP BY SUBSTR([COLUMN], 1, 1)
I'm not questioning your powers of observation; I'm merely remarking upon the paradox of asking a masked man who he is. (V)
|
|
|
|
|
thanks
nelsonpaixao@yahoo.com.br
trying to help & get help
|
|
|
|
|
i have this periods of experience i want to calculate the sum or total period of these periods
2004-01-06 2004-07-05
2004-07-07 2004-11-30
2010-07-01 2010-07-29
2011-06-12 2011-07-28
2012-07-22 2012-08-20
2013-10-17 2015-05-17
Lost & Forgotten
|
|
|
|
|
If you provide the query you are trying to get working, you are more likely to get help.
What is the underlying database? SQLServer, Oracle, Postgres, etc?
|
|
|
|
|
sql
i made a query calculate the datediff in days and sumed all days now i want to convert this days (integer) to years months and days
thanks
Lost & Forgotten
|
|
|
|
|
ahmad_yossef wrote: i want to convert this days (integer) to years months and days
Well, break it down.. if you have the number of days, how many days in a year? Let's assume 365; so number of years in int(number of days / 365).
Months... let's assume 30 days on average... Months = int((number of days - years * 365) / 30)
And days are then number of days - years * 365 - months * 30
If that doesn't work, better define what you're after.
Given the sample dates you provided, what are the values you calculated for years, months and days?
|
|
|
|
|
thanks for your replay
but i face a problem when i have a number like 1456
the query will be like that
SELECT dayss, dayss / 365 AS years, (dayss - dayss / 365 * 365) / 30 AS Months, (dayss - dayss / 365 * 365) - (dayss - dayss / 365 * 365) / 30 * 30 AS days
FROM dbo.lv_npay_tmp3
which will return
days1 years months days
1456 3 12 1
and it should be
days1 years months days
1456 4 0 1
i hope you got me
thanks alot
Lost & Forgotten
|
|
|
|
|
1456 == (3 × 365) + 361 .
That's clearly not 4 years and 1 day.
The problem is that you're assuming 365 days per year, but only 30 days per month. (30 × 12) = 360 , so you've lost five days.
You need to assume (365 / 12) = 30.4166666... days per month, which will give you an answer of 3 years, 11 months and 27 days.
SELECT
dayss,
dayss / 365 As years,
Cast(Floor((dayss % 365) * 12 / 365.0) As int) As Months,
(dayss % 365) - Cast(Floor((dayss % 365) * 12 / 365.0) * 365.0 / 12 As int) As days
FROM
dbo.lv_npay_tmp3
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
|
i am sorry
Lost & Forgotten
|
|
|
|
|
Click on your name and you can find all your previous messages.
|
|
|
|
|
I will just say that this sort of exercise seldom ends well without business requirements.
I am not going to analyze all possible interpretations but I will provide and example from your own data.
2013-10-17 2015-05-17
A business person asks you for how many years in that. All of the following are possible answers.
- One. 2013-10 to 2014-10 is one year, but 2014-10 to 2015-05 isn't.
- Zero. Because 2013-10 to 2014-10 is one year but it isn't 2014-10 yet
- Three. 2013, 2014, 2015 = 3.
- Two. 2013-10 to 2014-10 is one year, but 2014-10 to 2015-05 is partial, so round up to get 2.
- Five. The dates are supposed to be based on the contract period not the annual service dates (which the above dates are.)
- 17. Because the person that actually wants this wants a count of months covered.
|
|
|
|
|
Hello Guys
I have installed one software that works with local ms access database.
If you remove that database of course the software displays the warning that the database is missing.
Can i migrate this database to Sql server so the program will work with Sql and not with Ms Access anymore????
|
|
|
|
|
Yes you can migrate it to SQL DB manually to be in safe side but your software must be compatible with data-source.
|
|
|
|
|
Yes, there is (was) even migration tool to help you upsize to a proper database (SQL Server). You then only need to change your connection string to point to the SQL Server database.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
select id,name from stud where (id not in (select id from class)) and depid in (select depid from dep where rid=@rid)
|
|
|
|
|
What about:
Select DISTINCT id, name
FROM stud
INNER JOIN dep on stud.depid=dep.depid
LEFT JOIN class on stud.id=class.id
WHERE dep.rid=@rid
AND stud.id is null
But I doubt that it's faster...
|
|
|
|
|
Im not sure, but compare not in the join will be the faster one, i heared like that 
|
|
|
|
|