0

SQLServer2008を実行しています。

このクエリが実行されるたびに一時テーブルを作成し、入力する行が1行を超える場合に複数の行を追加する方法を見つけようとしています。お客様からの領収書情報を持っています。

create table #temp (col1 varchar(100),col2 varchar(100),col3 varchar(100))

insert into #temp (col1, col2, col3)values('Store ID', '01', '')
insert into #temp (col1, col2, col3)values('Product','Quantity','Amount')
insert into #temp (col1, col2, col3)values
(
  (select product from receipt where receiptnum = 1),
  (select quantity from receipt where receiptnum = 1),
  (select amount from receipt where receiptnum = 1),
)
select * from #temp

私に次の出力を与えます(これは私のデータ構造全体ですが、コードをフラッディングしないように同じ概念です): ここに画像の説明を入力してください

私の質問は、レシートに1つ以上の製品が含まれている場合、事前に知らなくてもどうすればよいかということです。このデータを表示するために必要なのはレシート番号とストア番号だけなので、入力する行数はわかりません。

周りを見渡すと、カーソルを使わなければならないようですが、カーソルに関する知識はありません。

4

1 に答える 1

1

3 番目の挿入ステートメントを以下のステートメントに置き換えると、select で返されたすべてのレコードが一時テーブルに挿入されます。

insert into #temp
select product, quality, amount from receipt where receiptnum = 1
于 2013-02-12T20:52:22.533 に答える