2016-04-01 22 views
1

Ich möchte eine andere Spalte mit Gruppierung nach Klausel mit Summe oder Anzahl Funktionen auswählen.wählen Sie eine neue Spalte mit der Gruppierung nach Klausel

SELECT t1.[09to12PM], t2.[12to15PM], t3.[15to17PM], t4.[17to23PM] 
FROM 
    (SELECT COUNT (Premark) AS [09to12PM] 
    FROM saree_order_stages 
    WHERE Premark LIKE '%ready to go%' AND Premark != 'not ready to go' 
    AND pdate>='2016-03-29 09:00:00' AND Pdate <='2016-03-29 12:00:00') t1, 

    (SELECT COUNT (Premark) AS [12to15PM] 
    FROM saree_order_stages 
    WHERE Premark LIKE '%ready to go%' AND Premark != 'not ready to go' 
    AND pdate>='2016-03-29 12:00:00' AND Pdate <='2016-03-29 15:00:00') t2, 

    (SELECT COUNT (Premark) AS [15to17PM] 
    FROM saree_order_stages 
    WHERE Premark LIKE '%ready to go%' AND Premark != 'not ready to go' 
    AND pdate>='2016-03-29 15:00:00' AND Pdate <='2016-03-29 17:00:00') t3, 

    (SELECT COUNT (Premark) AS [17to23PM] 
    FROM saree_order_stages 
    WHERE Premark LIKE '%ready to go%' AND Premark != 'not ready to go' 
    AND pdate>='2016-03-29 17:00:00' AND Pdate <='2016-03-29 23:00:00') t4 
GROUP BY t1.[09to12PM], t2.[12to15PM], t3.[15to17PM], t4.[17to23PM] 

hier ist Ergebnis zeigt diese

09to12PM 12to15PM 15to17PM 17to23PM 
23   21  15  19 

wir wollen wie diese nur einen Spaltennamen hinzuzufügen. und zeigt Daten wie folgt.

name 09to12PM 12to15PM 15to17PM 17to23PM 
amit 23   21  15  19 
sumit 11   22  11  45 
raj 14   4   5   67 
+1

von wo aus der 'name' kommen wird? –

+0

ist ein Teil der Tabellenfelder und sollte 1. Spalte wie in der Tabelle angezeigt werden. –

Antwort

1

Sie könnten Kriterien bedingte Aggregation vereinfachen:

SELECT 
    name, 
    [09to12PM] = SUM(CASE WHEN pdate>='2016-03-29 09:00:00' AND Pdate <='2016-03-29 12:00:00' THEN 1 ELSE 0 END), 
    [12to15PM] = SUM(CASE WHEN pdate>='2016-03-29 12:00:00' AND Pdate <='2016-03-29 15:00:00' THEN 1 ELSE 0 END), 
    [15to17PM] = SUM(CASE WHEN pdate>='2016-03-29 15:00:00' AND Pdate <='2016-03-29 17:00:00' THEN 1 ELSE 0 END), 
    [17to23PM] = SUM(CASE WHEN pdate>='2016-03-29 17:00:00' AND Pdate <='2016-03-29 23:00:00' THEN 1 ELSE 0 END) 
FROM saree_order_stages 
WHERE 
    Premark LIKE '%ready to go%' 
    AND Premark != 'not ready to go' 
    AND CAST(pdate AS DATE) = '2016-03-29' 
GROUP BY name 
+0

gut danke, um mein Problem zu lösen –

+0

Froh, dass ich geholfen habe! Fühlen Sie sich frei, meine Antwort zu akzeptieren, wenn Sie das Gefühl haben, dass es für Sie nützlich ist. :-) –

+0

vielen Dank Felix Pamittan –

Verwandte Themen