最初のゼロ以外の値のみを表示する方法はありますが、すべての値がゼロの場合は、結合されたテーブルとは別のテーブルの列の最初のインスタンスを表示します
P粉563831052
P粉563831052 2024-02-21 12:58:34
0
2
317

2 つのテーブルは非常に大きく、select ステートメントには取得できる値よりも多くの値がありますが、質問に答えるためにこのデータとクエリを単純化できると思います。

これは私の選択ステートメントです:

リーリー

つまり、テーブルが 2 つあります。 Invoice テーブルと InvoiceItem テーブル。これらは各テーブルの InvoiceNum 列によって結合され、InvoiceNum 列と Layer 列が表示されます

このクエリの結果は次のとおりです:

リーリー

私の InvoiceItem テーブルには 1 つの InvoiceNum に割り当てることができる複数の行があるため、結果に InvoiceNum が重複して表示されますが、これは望ましくありません。

これは、請求書テーブルから請求書番号を 1 つだけリストするために取得しようとしている結果です。最初のケースは、InvoiceItem テーブルのレイヤー列のゼロ以外の値であり、非ゼロの場合は、ゼロ値、リスト 最初のゼロ。

次のようなことを試してください:

リーリー

これをどのように行うか、あるいは 2 つの異なるテーブルにあることを考えるとそれが可能かどうかはわかりません。

P粉563831052
P粉563831052

全員に返信(2)
P粉310931198

仮定/理解:

  • sybase とマークされていますが、この質問では 4 種類の Sybase RDBMS 製品 (ASESQLAnywhereIQ) を区別していません。 、利点)、したがって、一般的なSQL構文にこだわります(つまり、4x製品には異なるSQL言語があります。また、ASEはCTEをサポートしていません)
  • 提供された出力は、InvoiceItem ## に「欠落している」行があることを示しているようには見えないため、OP の left (outer) join の使用法がわかりません。
  • #Layer 列と InvoiceItemNum 列がどのテーブルに属しているかが明確ではないため、InvoiceItem に属していると仮定します。
最小限のテーブル定義と関連する

insert ステートメントのセットを推測します: リーリー

OP の現在の出力を生成するクエリ:

リーリー

OP に必要な出力を生成するためのいくつかの (複雑で混乱を招く) アイデア:

リーリー

これらの両方で次のものが生成されます:

リーリー

コメント:

    (私には) 出力が表示されず、OP が
  • left (外部) join の必要性を示しているため、出力がどうなるかわかりません。
  • すべてのクエリは (Sybase)SAP でテストされています
  • ASE 16.0
いいねを押す +0
P粉551084295

この質問は少し難しいです:

Postgres で試してみる:

リーリー ######デモ######

MySQL 8: ###これを試して:### リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!