[SQL Srv Rep Serv] Interazione tra query diverse

venerdì 17 marzo 2006 - 09.41

Hamelin [FL] Profilo | Junior Member

Un saluto a tutti.

Ho un problema su Microsoft SQL Server Reporting Services: dovrei creare una query che agisca sui campi ottenuti da un'altra query, e non ho la possibilità di creare una view sul server aziendale poichè ho accesso in sola lettura. E' possibile far interagire tra loro due query in questo modo? (quindi non solo attraverso il passaggio di parametri, ma sfruttando la tabella creata dalla prima query)

**

Provo a spiegare meglio con l'esempio pratico di ciò che devo fare (anche perchè magari esiste un'altra soluzione):

La tabella che devo interrogare ha una colonna con gli UserId, e una colonna con le date di login di questi User.
Da questa tabella devo definire "Normale" un utente che nei 12 mesi precedenti il mese considerato ha eseguito una sola login, e "Super" un utente che nei precedenti 12 mesi ha eseguito 2 login.
Questo lo posso fare, ad esempio, tramite una SELECT CASE

SELECT usrId,
CASE
WHEN COUNT(usrId) = 1 THEN 'Normale'
WHEN COUNT(usrId) = 2 THEN 'Super'
ELSE 'Sconosciuto'
END
AS TipoUtente

Fatto questo, la tabella finale deve contenere 3 campi: un campo per ogni mese, un campo per il tipo di utente, e un campo che indica quanti utenti per ogni tipo ci sono nei 12 mesi precedenti quel mese, quindi ad esempio:

[MESE] [TIPOUTENTE] [N°UtentiDiQuelTipo]
1 Normale 4
1 Super 3
1 Sconosciuto 2
2 Normale 5
2 Super 1
2 Sconosciuto 4

Dove il primo 4 significa che da gennaio 2005 a gennaio 2006 ci sono 4 utenti che hanno eseguito login 1 volta sola
Il primo 5 significa che da febbraio 2005 a febbraio 2006 ci sono 5 utenti che hanno eseguito login 1 volta sola
E così via

Spero di essere stato chiaro, nel caso non abbia dato sufficienti informazioni chiedete pure che provo a spiegarmi meglio

Grazie mille dell'aiuto

Hamelin [FL] Profilo | Junior Member

Uhm... no, questa via non l'ho provata.

Cioè, come dataset posso mettere una query? (mi sembrava strano che non si potesse fare, ma sul manuale di SSRS non avevo trovato l'argomento)

Ora provo a smanettarci un po'... tu sai come si imposta una query come dataset?

Hamelin [FL] Profilo | Junior Member

Scusa se sono un po' lento, ma non sono sicuro di aver capito bene:

Io ho la mia query che si trova sul DataSet1. Questa query crea i campi "UsrId" e "TipoUtente"

A questo punto posso creare su un altro DataSet un'altra query che vada interrogare UsrId e TipoUtente della prima query?

O se non era questo che intendevi, mi potresti spiegare come dovrei seguire la via che mi hai suggerito?

Grazie per l'attenzione che mi stai dedicando

Hamelin [FL] Profilo | Junior Member

Nel DataSet1 ho la seguente query:

SELECT usrId,
CASE
WHEN COUNT(usrId) = 1 THEN 'Normale'
WHEN COUNT(usrId) = 2 THEN 'Super'
ELSE 'Sconosciuto'
END
AS TipoUtente

Se la eseguo, mi genera la tabella (temporanea) con i campi usrId e TipoUtente

A me servirebbe, con un'altra query, andare a interrogare questa "tabella temporanea" in modo, ad esempio, da contare gli usrId per ogni TipoUtente

E' possibile farlo? E' possibile interrogare, con una query, il risultato di un'altra mia query? Se sì, mi potresti spiegare come?
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5