2017-06-07 14 views
0

Restaurantid = StoreIDの場合、最初のクエリでCount(Taskid)とCount(Complete)を追加します。しかし、私はどのように1つのテーブルを作るために1つのクエリを作るか分かりません。どんなアイデアですか?クエリを使用して多数のテーブルを結合する

private DataTable GetData() //get any data from database SeongsilApp 
{ 
    string connString = @"aa.net;Initial Catalog=db_c;Persist Security Info=True;User ID=db_c_ExternalWriter;Password=aa"; 
    string query = "Select a.Name, b.Restaurant, a.City, c.[Postal Code], a.[Open Date], a.POSSystem as 'Taskid' FROM Stores a, tblConcepts b, tblStates c WHERE a.ConceptID = b.Restaurantid AND a.State = c.Stateid AND a.[Open Date] >= cast(cast(getdate() as date) as datetime)"; 
    string query2 = "SELECT StoreID, Count(Taskid) FROM tblAssignedTasks WHERE Complete = 'True' GROUP BY StoreID"; 
    string query3 = "SELECT StoreID, Count(Complete) FROM tblAssignedTasks WHERE TargetDate <= cast(cast(getdate() as date) as datetime) AND Complete = 'True' GROUP BY StoreID"; 


    DataTable dt = new DataTable(); 
    using (SqlConnection con = new SqlConnection(connString)) 
    { 
     using (SqlCommand comm = new SqlCommand(query)) 
     { 
      using (SqlDataAdapter sda = new SqlDataAdapter()) 
      { 
       comm.Connection = con; 
       sda.SelectCommand = comm; 
        sda.Fill(dt); 
        return dt; 
      } 
     } 
    } 
} 

答えて

0

あなたは、メインクエリと一緒にカウントを取得するために、内側SELECTクエリを書くことができます。また、JOINのために、それは例えば、WHERE句で条件を指定するよりON構文を使用することをお勧めします。:

Select a.Name, b.Restaurant, a.City, c.[Postal Code], a.[Open Date], a.POSSystem as 'Taskid', 
(SELECT Count(Taskid) FROM tblAssignedTasks WHERE Complete = 'True' AND StoreID = b.Restaurantid) AS `completed`, 
(SELECT Count(Complete) FROM tblAssignedTasks WHERE TargetDate <= cast(cast(getdate() as date) as datetime) AND Complete = 'True' AND StoreID = b.Restaurantid) AS `target` 
FROM Stores a JOIN tblConcepts b ON a.ConceptID = b.Restaurantid 
JOIN tblStates c ON a.State = c.Stateid 
WHERE a.[Open Date] >= cast(cast(getdate() as date) as datetime) 
+0

ああ、私は内側のSELECTクエリを使用することができます...!ありがとうDarshan :) – Scarlett

関連する問題