-4

このエラーが発生し続けます

from のキーワード付近の構文が正しくありません

このクエリを実行しようとすると。私はSQLにかなり慣れていないので、おそらく何かを見逃しています。SQL Server 2008 を使用しています

基本的に私がやりたいことは、列lastreturndateに値を持たせることです = Checkoutdate + Loanperiod。は別のテーブルにあるためloanperiod、 を含むビューを作成しましたCheckoutdate, lastreturndate, loanperiod

私が達成しようとしているものの例

Checkoutdate    loanperiod      lastreturndate

  2012-1-01          3           2012-4-01

SQL コード:

DECLARE @lastreturndate DATETIME
SET @lastreturndate = dateadd(month,loanperiod,CheckOutDate)
INSERT INTO Loan(lastreturndate) VALUES (@lastreturndate) 
FROM dbo.returndateview

dbo.returndateview= は私が作成したビューです

ERDへの画像リンクhttp://imageshack.us/a/img69/3048/68810818.png

item_details のカテゴリは貸与期間と呼ぶ必要があることに注意してください

私のビューへのリンクhttp://img194.imageshack.us/img194/8200/viewsm.png

4

2 に答える 2

1

をやろうとしていると思いますUPDATE。ビューと Loan テーブルが によって関連付けられていると仮定すると、loanid試してみることができます

Update L set L.lastreturndate = dateadd(month,v.loanperiod,v.CheckOutDate)
From Loat L join dbo.returndateview v
            on L.loanId = v.loanId --You should have this relation

または、ビューを次のように再設計できる場合

create view dbo.returndateview
as
  select Checkoutdate,loanperiod,
       dateadd(month,loanperiod,CheckOutDate) lastreturndate
  from YourTable
于 2013-02-24T11:36:36.720 に答える
1

それ以外の

INSERT INTO Loan(lastreturndate) VALUES (@lastreturndate) 
FROM dbo.returndateview

試す

insert into Loan(lastreturndate)
select ___ from dbo.returndateview where ___ = @lastreturndate

(ビューの列を_に入力する必要があります)。

.. または、おそらく次のように単純です。

DECLARE @lastreturndate DATETIME
SELECT @lastreturndate = dateadd(month,loanperiod,CheckOutDate) FROM dbo.returndateview
INSERT INTO Loan(lastreturndate) VALUES (@lastreturndate) 

あなたの最後の編集に基づいて、これがあなたが望むものだと思います:

update loan set
    lastReturndate = dateadd(month, detail.loanperiod, CheckOutDate)
from loan
join item on loan.barcode = item.barcode
join item_detals detail on item.isbn = detail.isbn

あなたの意見が必要な場合は、次のように変更する必要があると思います。

create view returnDateView as
select
   detail.loanperiod,
   loan.CheckOutDate,
   loan.LastReturndate
from loan
join item on loan.barcode = item.barcode
join item_detals detail on item.isbn = detail.isbn
于 2013-02-24T11:30:35.567 に答える