Na samym początku chciałabym zaznaczyć że z SQL to u mnie nie za dobrze.
Do tej pory miałam w taki sposób zrobiony kod w php(tablica $tablica zawiera liczbe wczesaciej wyciągniętą nazwe grup)
Kod
while(count($tablica) > $i)
{
$sqlW1=mssql_query("SELECT COUNT(Record_Entry_ID) AS w1 FROM SupervisionLog WHERE Group_ = '".$tablica[$i][group_]."' AND First_Assigned_Time > '".$dateFromWeek[0]."'
AND First_Assigned_Time < '".date("Y-m-d")."' AND Hidden = 0");
$rowW1=mssql_fetch_array($sqlW1);
$tablica [$i]['w1'] = $rowW1[w1];
//echo "w1 = ".$tablica [$i]['w1']."<br/>";
$sqlW1=mssql_query("SELECT COUNT(Record_Entry_ID) AS w1SLA FROM SupervisionLog WHERE Group_ = '".$tablica[$i][group_]."' AND First_Assigned_Time > '".$dateFromWeek[0]."'
AND First_Assigned_Time < '".date("Y-m-d")."' AND SLA_Target_TimeFix1 IS NOT NULL AND Hidden = 0");
$rowW1=mssql_fetch_array($sqlW1);
$tablica [$i]['sla1'] = $rowW1[w1SLA];
//echo "sla1 = ".$tablica [$i]['sla1']."<br/>";
//echo "I = ".$i."<br/>";
$i++;
}
{
$sqlW1=mssql_query("SELECT COUNT(Record_Entry_ID) AS w1 FROM SupervisionLog WHERE Group_ = '".$tablica[$i][group_]."' AND First_Assigned_Time > '".$dateFromWeek[0]."'
AND First_Assigned_Time < '".date("Y-m-d")."' AND Hidden = 0");
$rowW1=mssql_fetch_array($sqlW1);
$tablica [$i]['w1'] = $rowW1[w1];
//echo "w1 = ".$tablica [$i]['w1']."<br/>";
$sqlW1=mssql_query("SELECT COUNT(Record_Entry_ID) AS w1SLA FROM SupervisionLog WHERE Group_ = '".$tablica[$i][group_]."' AND First_Assigned_Time > '".$dateFromWeek[0]."'
AND First_Assigned_Time < '".date("Y-m-d")."' AND SLA_Target_TimeFix1 IS NOT NULL AND Hidden = 0");
$rowW1=mssql_fetch_array($sqlW1);
$tablica [$i]['sla1'] = $rowW1[w1SLA];
//echo "sla1 = ".$tablica [$i]['sla1']."<br/>";
//echo "I = ".$i."<br/>";
$i++;
}
Mam to teraz zrobić za pomocą pivota, ale nie wychodzi mi to najlepiej. Oto marne próby:
SELECT DISTINCT Group_, [1] AS [Unix], [2] AS [Windows], [3] AS [Solaris] FROM (SELECT Group_, Record_Entry_ID, First_Assigned_Time FROM SupervisionLog) p PIVOT (COUNT(Record_Entry_ID) FOR Record_Entry_ID IN ([1],[2],[3])) pvt ORDER BY pvt.Group_;
jak chce wstawić w miejsce [1] => COUNT(Record_Entry_ID) to wyrzuca mi komunikat: Invalid column name 'Record_Entry_ID'.
Z góry dziękuję za pomoc. Pozdrawiam.