Raggruppamenti per due colonne

venerdì 15 gennaio 2010 - 11.39

Pongo Profilo | Senior Member

Ciao A tutti!!

Non riesco a capire come svolgere una(molte) query.

In pratica ho questi dati:
negozio, data, numeroscontrino, codiceprodotto, area, category
005 2009-09-02 00:00:00.000 1 00010251 Du Duplarin L 90 ml A01 C20
005 2009-09-02 00:00:00.000 1 00001787 Mx Blucarbon Carbone Attivo A02 C20
005 2009-09-02 00:00:00.000 2 00006422 Pd Tappetini Assorbenti 60x90 A02 C10
005 2009-09-02 00:00:00.000 3 00000901 Go Gold Trota alla Marinara 85 g A01 C50
005 2009-09-02 00:00:00.000 3 00004335 Go Gold Coniglio e Fegato 85 g A01 C50
005 2009-09-02 00:00:00.000 3 00003211 Sh Cat Creazioni c/ Oca 100 g A01 C50
005 2009-09-02 00:00:00.000 3 00003212 Sh Cat Creazioni c/ Agnello 100 g A01 C50
005 2009-09-02 00:00:00.000 3 00004510 Al Cat Nature Pollo con Formaggio 70 g A01 C50


Io vorrei sapere quanti scontrini hanno una determinata combinazione di area e category.

Nell'esempio averi 1 con A01 C20, 1 con A02 C20, 5 con A01 C50 e vai così.

Come fareste voi??

Grazie!

lbenaglia Profilo | Guru

>Io vorrei sapere quanti scontrini hanno una determinata combinazione
>di area e category.

Ciao Enrico,

Dovrebbe essere sufficiente un banale raggruppamento su quelle due colonne:

USE tempdb; CREATE TABLE dbo.foo( negozio char(3) NOT NULL, data date NOT NULL, numeroscontrino int NOT NULL, codiceprodotto varchar(50) NOT NULL, area char(3) NOT NULL, category char(3) NOT NULL ); INSERT dbo.foo VALUES ('005', '2009-09-02', 1, '00010251 Du Duplarin L 90 ml', 'A01', 'C20') , ('005', '2009-09-02', 1, '00001787 Mx Blucarbon Carbone Attivo', 'A02', 'C20') , ('005', '2009-09-02', 2, '00006422 Pd Tappetini Assorbenti 60x90', 'A02', 'C10') , ('005', '2009-09-02', 3, '00000901 Go Gold Trota alla Marinara 85 g', 'A01', 'C50') , ('005', '2009-09-02', 3, '00004335 Go Gold Coniglio e Fegato 85 g', 'A01', 'C50') , ('005', '2009-09-02', 3, '00003211 Sh Cat Creazioni c/ Oca 100 g', 'A01', 'C50') , ('005', '2009-09-02', 3, '00003212 Sh Cat Creazioni c/ Agnello 100 g', 'A01', 'C50') , ('005', '2009-09-02', 3, '00004510 Al Cat Nature Pollo con Formaggio 70 g', 'A01', 'C50'); SELECT area, category, COUNT(*) AS Numero FROM dbo.foo GROUP BY area, category; /* Output: area category Numero ---- -------- ----------- A02 C10 1 A01 C20 1 A02 C20 1 A01 C50 5 (4 row(s) affected) */ DROP TABLE dbo.foo;

>Grazie!
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

Pongo Profilo | Senior Member

L'avevo anche provato ma mi sembrva che i risutati non fossero corretti... e invece sono corretti...

Grazie Lorenzo!

Vado avanti e vedo se trovo altre rogne... questo era il primo step!

Ciao!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5