[解決済み] SQL Server サブクエリが 1 つ以上の値を返しました。これは、サブクエリが =, !=, <, <= , >, >= のように続く場合は許可されません。
2022-01-28 01:36:16
質問
以下のクエリを実行しました。
SELECT
orderdetails.sku,
orderdetails.mf_item_number,
orderdetails.qty,
orderdetails.price,
supplier.supplierid,
supplier.suppliername,
supplier.dropshipfees,
cost = (SELECT supplier_item.price
FROM supplier_item,
orderdetails,
supplier
WHERE supplier_item.sku = orderdetails.sku
AND supplier_item.supplierid = supplier.supplierid)
FROM orderdetails,
supplier,
group_master
WHERE invoiceid = '339740'
AND orderdetails.mfr_id = supplier.supplierid
AND group_master.sku = orderdetails.sku
以下のようなエラーが発生します。
Msg 512, Level 16, State 1, Line 2 サブクエリが1つ以上の値を返しました。サブクエリが =, !=, <, <= , >, >= に続く場合、またはサブクエリが式として使用されている場合、これは許可されません。
何か思い当たることはありますか?
解決方法は?
これを試してみてください。
SELECT
od.Sku,
od.mf_item_number,
od.Qty,
od.Price,
s.SupplierId,
s.SupplierName,
s.DropShipFees,
si.Price as cost
FROM
OrderDetails od
INNER JOIN Supplier s on s.SupplierId = od.Mfr_ID
INNER JOIN Group_Master gm on gm.Sku = od.Sku
INNER JOIN Supplier_Item si on si.SKU = od.Sku and si.SupplierId = s.SupplierID
WHERE
od.invoiceid = '339740'
を除いて同じ行が複数返されます。
cost
カラムがあります。返された異なるコスト値を見て、何が原因で異なる値になっているのかを考えてみてください。そして、どのコスト値が欲しいかを誰かに聞いて、そのコストを選択するための条件をクエリーに追加します。
関連
-
[解決済み] バックエンドバージョンでは、データベースのダイアグラムやテーブルのデザインはサポートされていません。
-
[解決済み】SQL ServerでIdentityカラムを更新する方法は?
-
[解決済み] INSERT ステートメントが FOREIGN KEY 制約と競合する - SQL Server
-
[解決済み] SQL Server - 'RETURN'付近の、条件が想定されるコンテキストで指定された、非ブール型の式。
-
[解決済み] ORA-04063: ビューにエラーがあります
-
[解決済み] SQLクエリで2つの列から値を引き算する
-
[解決済み] SQL Server - INNER JOIN WITH DISTINCT
-
[解決済み] SQLで複数のGROUP BYを使用する場合とは?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】CREATE VIEW は、バッチ内の唯一のステートメントでなければなりません。
-
[解決済み] 3を挿入すると「ORA-01438: この列で許容される指定精度より大きい値」と表示される。
-
[解決済み] テスト
-
[解決済み】SQL Serverは「集約関数やサブクエリを含む式に対して集約関数を実行できない」が、Sybaseはできる。
-
[解決済み】ORA-01791: SELECTされた式ではない
-
[解決済み] 2つの列を分割するには?
-
[解決済み] WHERE x IN (5) vs WHERE x = 5 ...なぜINを使うのか?
-
[解決済み] Varchar は Sum 演算子では無効です。
-
[解決済み] DELETE文の競合REFERENCE制約
-
[解決済み] SQLで複数のGROUP BYを使用する場合とは?