1

レコードを取得するテーブルが 4 つあります。最初の 3 つのテーブルでは、共通の行との内部結合が必要でしたが、4 番目のテーブルでは、最初の 3 つのテーブルから既にフェッチされた行を保持する必要があるため、左外部結合が必要です。

ここで、問題は、4 番目のテーブルとの左結合が必要なことですが、日付 = 現在の日付を持つレコードのみを選択する必要があります。ストアド プロシージャを呼び出すときに、C# から現在の日付を渡しています。しかし問題は、SQL Server が null レコードを提供していることです。

ここにクエリがあります::

alter procedure
  (@currentdate varchar(50))
  select distinct 
      table1.name, table2.class,table3.stream 
  from 
      table1
  inner join 
      table 2 on table1.id = table2.id 
  inner join 
      table3 on table3.id=table2.id   
  left outer join 
      table 4 on table 4.id = table3.id and table4.date = @currentdate

where句を使用すると結果全体がフィルタリングされ、1つのレコードだけが得られるようにレコードが必要なため、左外部結合を使用しました。

次に、ストアドプロシージャの両方の日付でキャストを使用しましたが、肯定的な応答はありませんでした。

私が使用しているC#から

var date = datetime.now.toshortdate();
CallStoredProcedure(date)

これについてできるだけ早く助けてください。ありがとうございました

4

1 に答える 1