MySQLのレポート作成に問題があります。主な目的は、ユーザーごとにすべてのタスクを選択し、すべてのユーザーごとに time_to_complete と time_passed の合計の差を計算することです
1 まず、U はすべての DISTINCT 名をリストしました
SELECT DISTINCT
initial
FROM atm_name_initials
結果はこちら => http://sqlfiddle.com/#!2/f6cbe/1
2 次に、atm_name_initials で見つけた名前ごとに、このクエリを実行して、そのユーザーに関する情報を取得する必要があります
SELECT
task_given_to,
SUM(time_to_complete) AS sum_time_to_complete,
SUM(time_passed) AS sum_time_passed,
SUM(time_to_complete) - SUM(time_passed) AS sum_differance
FROM atm_tasks_dit
WHERE
completed_percent = 100 AND
task_given_to = 'OS'
結果はこちら => http://sqlfiddle.com/#!2/f6cbe/2
問題1
なぜそれらの番号が表示されるのか理解できません。0.1 + 0.3 = 0.4、0.34545455 ではなく ... または何でも
問題2
最初の選択を2番目の選択にリンクするにはどうすればよいですか.PHPでは次のようになります
$result = mysql_query("
SELECT DISTINCT
initial
FROM atm_name_initials
;") or die("An unexpected error has occur!");
while($row = mysql_fetch_assoc($result))
{
$NameInitial = $row['initial'];
$result2 = mysql_query("
SELECT
task_given_to,
SUM(time_to_complete) AS sum_time_to_complete,
SUM(time_passed) AS sum_time_passed,
SUM(time_to_complete) - SUM(time_passed) AS sum_differance
FROM atm_tasks_dit
WHERE
completed_percent = 100 AND
task_given_to = '".$NameInitial."'
;") or die("An unexpected error has occur!");
while($row2 = mysql_fetch_assoc($result2))
{
echo $row['task_given_to']."<br/>";
echo $row['sum_time_to_complete']."<br/>";
echo $row['sum_time_passed']."<br/>";
echo $row['sum_differance']."<br/>";
}
}
しかし、お願いします、もう PHP はやめてください。本当の意味で SQL を学びたいのです。
両方のソリューションが必要です
SOLUTION 1
手続きをする(スタイリッシュモード)
解決策 2
1 つの単一クエリで、別の SELECT などで SELECT を実行しますが、プロシージャは使用しません
すべての助けに感謝します。どうもありがとうございました!