1

SQL Select All Without Values in Another Table でクエリに回答しました。

別のデータベースのデータを統合するように依頼されました。これは私が現時点で持っているものです。

            string _loanSubcontractor = TableNames.Default.LoansSubcontractors;
            string _loanPacific = TableNames.Default.LoansPacific;
            string _tools = TableNames.Default.Tools;
            string _selectStatement = " SELECT [Tools].[Type], [Tools].[Brand], [Tools].[Serial], [Tools].[Year], [Tools].[Code] ";
            string _groupBy = " GROUP BY [Tools].[Type], [Tools].[Brand], [Tools].[Serial], [Tools].[Year], [Tools].[Code], [Tools].[Working] ";
            string _searchItems = " ([Tools].Code LIKE @toolSerial OR [Tools].Serial LIKE @toolSerial) AND ([Tools].[Working] = 'True' OR [Tools].[Working] IS NULL) ";
            SqlConnection myConnection = new SqlConnection(Connection.Default.ConnectionString);
            //Checks the main tool information 
            myConnection.Open();
            SqlCommand getTool = new SqlCommand(
                _selectStatement + "FROM [" + _tools + "] LEFT OUTER JOIN [" + _loanSubcontractor + "] ON " +
                _tools + ".code = [" + _loanSubcontractor + "].ToolCode FULL JOIN [" + _loanPacific + "] ON " + _tools + ".Code = " +
                _loanPacific + ".ToolCode WHERE [" + _loanSubcontractor + "].ToolCode IS NULL AND [" + _loanPacific + "].ToolCode IS NULL AND (" + _searchItems + ")" +
                "UNION " +
            _selectStatement + " FROM [" + _loanSubcontractor + "] INNER JOIN " + _tools + " ON " + _tools + ".Code = [" + _loanSubcontractor + "].ToolCode  " +
                "INNER JOIN " + _loanPacific + " ON " + _loanPacific + ".ToolCode = " + _tools + ".Code " + _groupBy +
                "HAVING (COUNT(" + _loanSubcontractor + ".ReturnDate) = COUNT(*) OR COUNT(" + _loanPacific + ".ReturnDate) = COUNT(*)) " +
                " AND " + _searchItems, myConnection);
            getTool.Parameters.Add("@toolSerial", SqlDbType.NVarChar).Value = "%" + toolSerial + "%";

属性名が異なり、データ型も異なるため、2 つのローン テーブル (従業員用と下請け業者用) があります。基本的に、ツールが機能していること、およびツールがどちらのローン テーブルでも貸し出されていないことを確認する必要があります (返却日が null であることが示されています)。どちらのテーブルにもローンがある場合とない場合があります。

また、誰かが C# 内の SQL の適切な書式設定テクニックを示すリンクを提供してくれませんか?

4

1 に答える 1

0

私はあなたが linq to SQL を使っていることを最もよく知っています。これは ADO.NET の一部であり、100% エーカーで簡単な方法で長いクエリを使用できます。

linq to SQL については msdn.microsoft.com

LINQ to SQL: リレーショナル データの .NET 言語統合クエリ

C# での単純な LINQ to SQL

于 2013-07-25T06:52:05.293 に答える