2016-01-15 125 views
0

我有以下查詢:集團集團在SQL

SELECT Inspections.Pipe_Segment_Reference, 
(COUNT(*) * Conditions.structural_grade) AS Structural_Rating 
FROM (
    SELECT Inspections.Pipe_Segment_Reference, Conditions.structural_grade 
    FROM Conditions 
    INNER JOIN Inspections 
    ON Conditions.InspectionID = Inspections.InspectionID 
    WHERE Conditions.structural_grade IS NOT NULL 
) 
GROUP BY Inspections.Pipe_Segment_Reference, Conditions.structural_grade; 

,輸出

22, 2 
22, 4 
79, 2 
79, 5 
79, 3 

我想通過Pipe_Segment_Reference進一步GROUP獲得的

22, 6 
79, 10 

我試圖輸出在上面的查詢中添加一個額外的選擇,但我無法讓它工作。

回答

1

您正在正確的軌道上,在您的工作查詢周圍添加額外的SELECT。試試這個...

SELECT 
    DerivedYourInitialQuery.Pipe_Segment_Reference, 
    SUM(DerivedYourInitialQuery.Structural_Rating) AS NewTotal 
FROM 
    (
    SELECT Inspections.Pipe_Segment_Reference, 
    (COUNT(*) * Conditions.structural_grade) AS Structural_Rating 
    FROM (
     SELECT Inspections.Pipe_Segment_Reference, Conditions.structural_grade 
     FROM Conditions 
     INNER JOIN Inspections 
     ON Conditions.InspectionID = Inspections.InspectionID 
     WHERE Conditions.structural_grade IS NOT NULL 
    ) 
    GROUP BY Inspections.Pipe_Segment_Reference, Conditions.structural_grade 
    ) DerivedYourInitialQuery 
GROUP BY 
    DerivedYourInitialQuery.Pipe_Segment_Reference 
0

如果在附加的select/sub查詢中只對Pipe_Segment_Reference進行分組,

,或者可以是這樣的:

SELECT Inspections.Pipe_Segment_Reference, 
COUNT(*) AS Structural_Rating 
FROM (
    SELECT Inspections.Pipe_Segment_Reference, Conditions.structural_grade 
    FROM Conditions 
    INNER JOIN Inspections 
    ON Conditions.InspectionID = Inspections.InspectionID 
    WHERE Conditions.structural_grade IS NOT NULL 
) 
GROUP BY Inspections.Pipe_Segment_Reference; 
+0

查詢運行,但不輸出正確的值作爲需要被包括查詢的該部分:(COUNT(*)* Conditions.structural_grade)AS Structural_Rating –

0

也許:

SELECT

xxx1.Pipe_Segment_Reference,

總和(n字段或selectResult2)作爲的XName

從xtable1 XXX1

GROUP BY 1

有。 (條件)

爲了通過1