2016-11-17 16 views
0

私はいくつかの出力データを表示する必要がありますが、そのデータ内には、データ入力の問題が発生した場合、その生年月日から1年以内の生年月日も検索されます。ここに表示されているクエリ(SQL)内で生年月日の1年以内に検索するにはどうすればよいですか?

これは私の現在のコードです:SQL Server Management Studioの上の古いバージョンを使用して

select c.clientid [Client Id],c.nnn [NHS Number],c.surname 
Surname,c.firstname FirstName,c.gender Gender,c.dateofbirth [Date of 
Birth],c.dateregistered [Date Registered], ca.Postcode 
from dbo.Client c 
inner join dbo.Client d 
on c.Surnamesoundex=d.Surnamesoundex and c.clientid<>d.clientid 
and (c.nnn is null or d.nnn is null) 
and c.Firstnamesoundex=d.Firstnamesoundex 
and (c.clientid <> 1120198 and c.clientid <>1126429) 
and c.dateofbirth between c.DateOfBirth + INTERVAL 1 YEAR 
left outer join dbo.clientaddress ca 
on d.clientid=ca.clientid and ca.todate is null 
order by c.SurnameSoundex,c.FirstnameSoundex 

イム。

+4

あなたは、DBMSを使うのですか? – Jens

+0

現在のクエリで何が問題になっていますか? – jarlh

答えて

0

私はあなたがエラーを取得している間隔

INTERVAL '1' YEAR 

周り

入れ相場はレンジ

between ... and c.DateOfBirth + INTERVAL '1' YEAR 

を参照する必要があります。しかし、それはdoesnの推測していますc.dateofbirthとそれを比較するのは意味がありません。

はおそらく望んでいた -

c.dateofbirth between d.DateOfBirth and d.DateOfBirth + INTERVAL '1' YEAR 

か -

d.dateofbirth between c.DateOfBirth and c.DateOfBirth + INTERVAL '1' YEAR 
+0

このエラーが発生しました... メッセージレベル102、レベル15、状態1、行17 '1'に近い構文が正しくありません。 そして1では、INTERVAL –

+0

@DavidJefferyの横にある番号1を意味しますが、データベース(バージョンを含む)を示すタグは追加していません。実行しようとしている更新されたクエリを元の投稿に追加してください –

+0

ありがとう、私は今これをやりました。 –

関連する問題