Aggiunta di una riga del totale alla fine del risultato della query

Im cercando di avere un Totale di riga alla fine del risultato della query im utilizzando MS-SQL 2012, hanno bisogno di qualche aiuto heres la mia query

SELECT
PropertyValue As Answer,Count(*) As rCount 
FROM 
QuestionerDetail AS Temp
where 
QuestionId = 42 and FormId = 1 
GROUP BY PropertyValue
Union All
SELECT 'Total',sum(rCount) 
FROM 
temp

Sto facendo qualcosa di veramente sbagliato.

Il Risultato dovrebbe essere come

Answer rCount
-------------
 One     10
 Two     25
 Total   35

Grazie.

  • Mentre può essere fatto penso sia un errore concettuale. Se si invia tutti i dati al client, comunque, si dovrebbe lasciare che prendersi cura di felice sintesi.
  • Basta aggiungere con cumulativo per la clausola group by.

 

5 Replies
  1. 7

    Non è possibile utilizzare l’alias in un’altra parte dell’unione.

    Provare qui sotto invece:

    SELECT
    PropertyValue As Answer, Count(*) As rCount 
    FROM 
    QuestionerDetail AS Temp
    where 
    QuestionId = 42 and FormId = 1 
    GROUP BY PropertyValue
    Union All
    SELECT 'Total', COUNT(*) 
    FROM 
    QuestionerDetail 
    where 
    QuestionId = 42 and FormId = 1 
  2. 3

    Dal momento che si utilizza SQL Server, si potrebbe fare questo con un CTE.

    ;WITH Temp AS
    (
    SELECT PropertyValue As Answer, Count(*) As rCount 
    FROM QuestionerDetail 
    WHERE QuestionId = 42 and FormId = 1 
    GROUP BY PropertyValue
    )
    
    SELECT Answer, rCount
    FROM Temp
    UNION ALL
    SELECT 'Total' as Answer, SUM(rCount) as rCount
    FROM Temp
  3. 3

    Si può usare questa sintassi :

    WITH Temp AS(
                  SELECT
                      PropertyValue As Answer
                      ,Count(*) As rCount 
                  FROM QuestionerDetail AS Temp
                  where QuestionId = 42 and FormId = 1 
                  GROUP BY PropertyValue
                 )
    SELECT Answer, rCount  FROM Temp
    UNION ALL
    SELECT 'Total', SUM(rCount)  FROM Temp

    Spero possa essere di aiuto!!
    Buona fortuna 🙂

  4. 3

    Basta aggiungere CON CUMULATIVO:

    SELECT
    PropertyValue As Answer, Count(*) As rCount 
    FROM 
    QuestionerDetail AS Temp
    GROUP BY PropertyValue WITH ROLLUP
  5. -1

    ho creato questa tabella, che confluisce in RAILS, quindi voglio sub totale di price_value alla linea di fondo.

    +----+----------------------------+---------+-------------+
    | id | name                       | item_id | price_value |
    +----+----------------------------+---------+-------------+
    |    | 20 packs                   | 281     | 500.0       |
    |    | kingfisher-3l              | 145     | 899.0       |
    |    | triple sec                 | 185     | 299.0       |
    |    | jagermeister               | 179     | 599.0       |
    |    | campari                    | 181     | 389.0       |
    |    | craganmore 12 yrs          | 207     | 998.0       |
    |    | Tandoori Jhinga            | 45      | 450.0       |
    |    | Chicken Makhmali Kebab     | 43      | 320.0       |
    |    | Irani Fish Tikka           | 41      | 400.0       |
    |    | Indonesian Udag Sambal     | 93      | 1500.0      |
    |    | Tom Yum with veg           | 3       | 160.0       |
    |    | Hot & Sour with veg        | 6       | 160.0       |
    |    | Salad Nicoise              | 15      | 255.0       |
    |    | Lamb Gilafi Seekh          | 44      | 400.0       |
    |    | Spicy wild Prwan Curry     | 108     | 500.0       |
    |    | Wild Mushroom              | 2       | 160.0       |
    |    | Minestrone Alla            | 1       | 320.0       |
    |    | Tom Yum with Chicken       | 4       | 360.0       |
    |    | Wild Mushroom              | 2       | 320.0       |
    |    | Prawn Dim Sum              | 18      | 280.0       |
    |    |  Seafood Biryani           | 61      | 400.0       |
    |    | Coconut Panacotta          | 130     | 250.0       |
    |    | singleton 12 yrs           | 269     | 11030.0     |
    |    | don angel silver           | 266     | 6354.0      |
    |    | johnnie walker -gold label | 272     | 13792.0     |
    +----+----------------------------+---------+-------------+

    questa è l’azione del controller visualizza codice

    def daily_wise_report
            @result = Item.select(:name, :price_value, :item_id). joins(:order_items)
            respond_to do |format|
                format.html
                format.csv { send_data @result.to_csv }
                format.xls
            end
    • Si dovrebbe provare questo formato. È difficile da capire.

Lascia un commento