私は誕生日のSQL Serverに来ている10人のリストを印刷したいが、私は適切な解決策を見つけられていない。私はこれを試みたが、それは正しく動作しません。私を助けてください。SQL ServerまたはLinqでリストの誕生日を取得するには?
のSQL Server
SELECT TOP 5 NAME,
birthday,
Datediff(dd, people.birthday, Getdate())/365.00/(
Year(Getdate()) - Year(people.birthday)) AS DAYS
FROM people
WHERE Datediff(dd, people.birthday, Getdate())/365.00/(
Year(Getdate()) - Year(people.birthday)) <= 1
ORDER BY days DESC
LINQ
var query =
(from c in db.PEOPLEs
where ((DbFunctions.DiffDays(c.BIRTHDAY, DateTime.Now)/365.25/(DateTime.Now.Year - c.NGAYSINH.Year))<=1)
orderby (DbFunctions.DiffDays(c.BIRTHDAY, DateTime.Now)/365.00/(DateTime.Now.Year - c.BIRTHDAY.Year)) ascending
select c).Take(5);
コードを読みやすくするために少し努力します。また、*よりもいくつかの詳細を与えると正しく動作しません。 –
10人が必要ですが、2つのクエリで5人が返されます(上位5人とTake(5人))。私はあなたの正確な意志を知らないので(5人または10人...) –
私はあなたの質問を理解していません。どういう意味ですか?同じ日に誕生日のある人ですか?同じ週、同じ年に誕生日を持つすべての人、erc?それを解決しようとしているときに見つけた問題は何ですか?より具体的にしてください。もちろん、コードをリバースエンジニアリングすることもできますが、実行したいことを記述することは簡単です。 – Matt