2013-07-25 83 views
1

我有一个查询在这里回答SQL Select All Without Values in Another TableSQL C#WPF查询扩展

我刚刚被要求整合来自另一个数据库的数据。这是我目前所拥有的。

  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 + "%"; 

我有什么是两份贷款表(一个为员工和一个分包商),因为属性名称是不同的数据类型也不同。实质上,我需要检查该工具是否正常工作,并且该工具没有被租用到任何一个贷款表中(如返回日期为null所示)。在任何一个表中都可能有或没有贷款。

另外,有人可以提供一个链接,显示良好的C#中的SQL格式化技术?

回答