2013-07-21 81 views
0

我工作的一個任務,並需要在SQL數據庫中的以下的一個表格: -將數據插入到具有多對多的關係

我有3個表

  1. 產品
  2. LintItem
  3. 發票

LineItem的是新娘的表,我需要將數據插入到LineItem的,但熱曲ires ProductID和InvoiceNumber。 在我的情況下,Invoice表是emppty,它將從LineItem表傳遞的數據中填充。

問題是如何在從lineItem表中獲取數據之前創建發票?

我正在使用這些表作爲在線購物車。

我很難解釋這個問題。希望你能理解它,謝謝!

+0

如何插入它,數據的來源是什麼? –

+0

問題是我想插入到Invoice表中的數據將來自LineItem表。例如,ItemPrice * Qantity獲取小計等。 – Jack

+0

數據來自購物頁面。如果用戶點擊添加項目,那麼這將被添加到LineItem表格中,並且如果用戶簽出,那麼我會將數據插入到發票表格中。 – Jack

回答

0

聽起來好像您在插入訂單項記錄之前有外鍵約束強制存在發票記錄。根據你的問題的措辭很難準確地說出來,但可能是這樣的。

 
--Table variable to hold line items 
DECLARE @lineItems TABLE 
(
    InvoiceNumber INT, 
    Quantity INT 
)

INSERT INTO @lineitems VALUES(1,1) INSERT INTO @lineitems VALUES(1,2)

--ADD INVOICE RECORD FIRST AND SUM Quantities etc.... INSERT INTO Invoice SELECT InvoiceNumber,SUM(Quantity) FROM @lineItems GROUP BY InvoiceNumber

--NOW YOU CAN ADD LINE ITEMS INSERT INTO LineItems SELECT * FROM @lineItems

這是如果這是你的目標,你可以使用一種模式。

如果您想在用戶從網頁中單擊添加時即時插入這些LineItem。我不會使用LineItem SQL表進行這種緩存。在不瞭解應用程序的情況下,很難說,但你確實應該將這些數據緩存在HTTP會話或客戶端中(數組,json,本地存儲等)。如果您選擇將其作爲SQL表執行操作,只需創建一個沒有約束的新LineItem,然後類似地使用上面的代碼即可使用該表插入到LineItem表中。

+0

感謝您的回答! – Jack

相關問題