1

バックエンドとしてSQLiteを使用して、iPhoneアプリケーションに取り組んでいます

私のアプリケーションでは、DB に ProjectsTable と Project_Hours_Table の 2 つのテーブルがあります。

ここに画像の説明を入力

ここに画像の説明を入力

ここで最初のテーブルには、unique_id を持つプロジェクトのリストがあります。

2 番目のテーブルには、プロジェクト ID (外部キーとして) とそれぞれの作業時間が含まれています。

ここで私の要件は、project_ID とその特定のプロジェクトの作業時間の合計を取得することです。

次のように

Project_ID  Hours
1             1
2             0
3             5 (1+4)
4             11 (5+6)
5             2
6             13 (7+6)
7             3

クエリを実装するための提案を提供してください 。事前に感謝します

4

2 に答える 2

2
select Project_Id, 
       sum(Hours) as Hours
  from Proj_HoursTable
group by Project_Id

両方の必須フィールドが Proj_HoursTable で使用できるため、ProjectTable に参加する必要はありません。プロジェクト名を出力に追加するには、ProjectTable への結合が必要になります (プロジェクト ID とプロジェクト名が 1 対 1 であると仮定します)

select pjt.ProjName, 
       pht.Project_Id, 
       sum(pht.Hours) as Hours
  from Proj_HoursTable pht join ProjectsTable pjt
    on pjt.Proj_Id = pht.Project_Id
group by pht.Project_Id, pjt.ProjName
于 2013-01-18T05:15:53.310 に答える
1

まずProj_Id、特定のプロジェクト(合計時間を表示したいもの)を表示し、変数に保存する必要があります。

そして、これに対する書き込みクエリの後

select * from Project_Hours_Table  where Proj_Id = Proj_Id  

このクエリは、必要な特定のすべてのデータを返しますProj_Id。辞書でHourNSMutableDictionaryフィールドの値を取得する必要がある後、データをに保存しますkey @"hour"

この値を次のように返し、次のように変換するNSSting必要がありますintValue

int hourCount = [StringHourValue intValue];

and count it it will give you total number of Hour
于 2013-01-18T05:14:20.957 に答える