1

私は割り当てに取り組んでおり、SQL データベースで次のことについてあなたの助けが必要です:-

私は3つのテーブルを持っています

  1. 製品
  2. LintItem
  3. 請求書

LineItem は花嫁テーブルであり、LineItem にデータを挿入する必要がありますが、ProductID と InvoiceNumber が必要です。私の場合、 Invoice テーブルは空で、 LineItem テーブルが渡すデータから入力されます。

問題は、lineItem テーブルからデータを取得する前に請求書を作成する方法です。

これらのテーブルをオンライン ショッピング カートに使用しています。

この問題を説明するのは本当に難しいです。ありがとうございます。

4

1 に答える 1

1

明細レコードを挿入する前に、請求書レコードの存在を強制する外部キー制約があるようです。質問の言い回しに基づいて正確に言うのは難しいですが、次のようなものかもしれません。

-- 項目を保持するテーブル変数
DECLARE @lineItems テーブル
(
   請求書番号 INT,
   数量 INT
)

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

-- 請求書レコードを最初に追加し、合計数量など.... 請求書に挿入 SELECT InvoiceNumber,SUM(数量) FROM @lineItems GROUP BY InvoiceNumber

-- ラインアイテムを追加できるようになりました INSERT INTO LineItems SELECT * FROM @lineItems

これは、それが目標である場合に使用できるパターンです。

ユーザーが Web ページから [追加] をクリックしたときに、これらの LineItems をオンザフライで挿入したい場合。この方法でキャッシュするために LineItem SQL テーブルを使用しません。アプリケーションについて何も知らずに言うのは難しいですが、このデータを HTTP セッションまたはクライアントで (配列、json、ローカル ストレージなど) としてキャッシュする必要があります。これを SQL テーブルとして実行することを選択した場合は、制約なしで新しい LineItem を作成するだけで、上記と同様に、そのテーブルを使用して LineItem テーブルに挿入できます。

于 2013-07-21T00:45:38.027 に答える