2016-07-14 24 views
0

レポート名とレポートIDの両方が表示されるクエリがあります。これは、レポートが事前にチェックされている場合にのみ適用されます。値は、データグリッドに入力されます。レポートがチェックされていない場合は、名前のみが表示されます。私はUPDATEキーワードを使ってみましたが、文法エラーが続いていました。私はクエリの小さな変更が簡単だと知っているが、私は、レポートがチェックされていないか、または基本的には0であることを報告するときに、reportidを表示しようとすると厄介な時間があります。チェックされているかどうか?あなたが右= 1 reportvisibleに独占的に参加している、とあなたがいるもちろん、あなたが上がらないので、あなたは具体的には、0 = reportvisibleで行をフィルタリング二度にわたり= reportvisible 1でのみreportIDsを選択しているチェックされていない値がチェックされたときに更新

valsql1 = "SELECT c.ReportID, c.COMPANYID, rl.REPORTNAME 
      FROM CompanyReportListTable c 
      right join ReportList rl on c.reportid = rl.ReportID 
             and reportvisible = 1 
             and CompanyID =" & DropDownList1.SelectedValue & " 
      where rl.ReportID in (
            Select ReportID 
            from ReportList 
            where ReportVisible = 1 
           ) 
      order by ReportName" 
+0

joinステートメントから 'and reportvisible = 1'を削除してみませんか? – Caius

+0

理由は会社ごとに適切なレポートの正確性を失うことではありません。私は、joinステートメントからreportvisibleを削除しようとしました。私がプログラムを実行したとき、報告書IDはまだチェックされていないレポート名の隣にはありませんでした。チェックされていないレポートをチェックしても、レポートIDは表示されませんでした。 –

答えて

0

これらの行については、レポートIDを取得しません。 rl.reportvisibleをSELECT句に追加し、join句とwhere句からreportvisible = 1を削除する必要があります。

+0

ここに私が得たものがあります。私はjoinとwhere節からreportvisibleを削除し、rl.reportvisibleをSELECT句に追加しました。プログラムを実行したとき、私は選択された会社に必要以上に多くのレポートを取得しましたが、未だ報告されていないレポートには表示されませんでした。 –

+0

私は、この質問では、小さな1文字の変更だけが必要と考えています。 –

0

1文字/ 2文字の変更のみです。最初のSELECTステートメントでは、c.ReportIDではなく、rl.REPORTIDにする必要があります。右の結合に戻って参照してください。右結合を使用して、選択した行をreportlistから戻し、crl tableと照合します。これで、reportIDは一致するかどうかにかかわらず表示されるようになりました。レポート名/タイトルのような種類

関連する問題