|
Ajutor optimizare interogare
-
02-01-2008, 1:24 AM |
|
-
ThePuiu
-
-
-
Joined on 02-14-2007
-
Oradea
-
db_owner
-
-
|
Ajutor optimizare interogare
Se dau 3 tabele:
[FACTURI]( [ID] [numeric](18, 0) IDENTITY(1,1) NOT NULL, [NUMAR] [numeric](18, 0) NULL, [DATA] [datetime] NULL)
[DETAIL] ( [ID] [numeric](18, 0) IDENTITY(1,1) NOT NULL, [ID_FACTURA] [numeric](18, 0) NULL, [ID_PRODUS] [numeric](18, 0) NULL)
[PRODUSE] ( [ID] [numeric](18, 0) IDENTITY(1,1) NOT NULL, [PRODUS] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL)
DETAIL.ID_FACTURA = FACTURI.ID DETAIL.ID_PRODUS = PRODUSE.ID
In tabela FACTURI se gasesc antetele facturii (numar factura si data emitere), in DETAIL sint produsele vindute sub forma de coduri care se regasesc in tabela PRODUSE. In tabela produse se gasesc un numar mare (mii de produse). Ce as vrea sa fac intr-un mod cit mai elegant: un tabel care sa aiba ca si capete de coloana: 1. Cod produs 2. Ziua 1 a lunii 3. Ziua 2 a lunii ------------------- 32. Ziua 31 a lunii 33. Total per produs
Ca si linii in tabel vor fi: Coloana 1: produsele in ordine alfabetica Coloana 2: numarul de aparitii [count(PRODUS1)] din ziua 1 a lunii Coloana 3: numarul de aparitii [count(PRODUS1)] din ziua 2 a lunii etc Coloana 33: suma aparitiilor pt cele 31 zile pt produsul PRODUS1
Numarul de coloane trebuie determinat automat (nu toate lunile au 31 de zile!), chiar daca tabela care va contine rezultatul va avea un nr fix de coloane, zilele lipsa din luna vor contine 0 sau null. Se poate face chestia asta fara a face select count(P1), count(P2), etc de 31 de ori? As dori ceva cit de cit rapid, iar pe mine ma cam depaseste!
Multumesc anticipat!
|
|
View Complete Thread
|
|
|