2016-03-30 12 views
-1

私は特定の条件で私達のデータベースの読み込み日から特定の仕事のリストを探していますが、私も内部結合を使用する必要があります。 私は自分のストア手順で最後の15日間のJob#を持ちたいと思っています。 最後の15日間だけAutoに変更するLoadDateを設定するにはどうすればよいですか?ここで今日のSQL Serverの15日前

は私のクエリです:

select pr.Job_Number, 
     Count(ItemCode1) as [Total Records], 
     si.PackageComplete 
from 
    processed_record pr 
inner join scanner_2 si on pr.ItemCode1 = si.ItemCode1 
where 
    pr.Format_Name like '%Lin%' and pr.LoadDate >= '03/01/2016' 
group by 
    pr.Job_Number, si.PackageComplete 
order by 
    si.PackageComplete, pr.Job_Number 
+0

[NOLOCKをどこにでも置くための嫌な習慣](http://blogs.sqlsentry.com/aaronbertrand/bad-habits-nolock-everywhere/) - この表のヒントをどこでも使用するようお勧めします* –

+0

なぜ'03/01/2016 'の代わりにDATEADD(日、-15、getdate())を使用しないのですか? – alessalessio

+0

somethign like、pr.LoadDate(DATEADD(day、-15、getdate()))?? –

答えて

0

あなたは

CONVERT(date, DATEADD(DAY, -15, GETDATE())) 

があなたの修正の日付値をinsted使用することができます。このコードでは

は、あなたは、あなたがそうでなければ、あなたも、現在の時刻を取得します日付標準 Convert(date, value)に変換 GetDate()とsubstract 15日 DateAdd(day, -15, DateValue)

Finaly現在の日付を受け取ります。

0

あなたのクエリは次のようにする必要があります:

select pr.Job_Number, 
     Count(ItemCode1) as [Total Records], 
     si.PackageComplete 
from 
    processed_record pr 
inner join scanner_2 si on pr.ItemCode1 = si.ItemCode1 
where 
    pr.Format_Name like '%Lin%' and pr.LoadDate >= DATEADD(DAY,-15,GETDATE()) 
group by 
    pr.Job_Number, si.PackageComplete 
order by 
    si.PackageComplete, pr.Job_Number 

GETDATE()現在の日付を取得し、DATEADD()関数は-15日(減算)を追加します。

+0

loaddate(datetime、null)の列の値は2015-11-18 15:47:20.310と同じですので、上記のクエリを使用しても結果は期待できません。 –

+0

あなたの質問ははっきりしないと思います。 15日間のデータを要求し、クエリでloaddate列を選択していません。出力として何を期待していますか?なぜ「2015-11-18 15:47:20.310」と言うのが問題なのですか? –

+0

上記の例の各レコードの日付と時刻を取得する特定の列名 "LoadDate"があります。 –

関連する問題