2010-02-23 4 views
2

J'ai une source de données personnalisée qui extrait les données d'un fichier plat. Le fichier plat contient un horodatage, une source et des données. Je peux utiliser sp_execute pour exécuter une requête de sélection sur le fichier plat.toutes les lignes plus les valeurs min/max en utilisant une seule procédure stockée

J'utilise actuellement 2 procédures stockées. - celui qui exécute un select * from flat_file dans une table temporaire - l'autre qui fait un select min/max de groupe flat_file par la source dans un autre fichier temp

Im en utilisant les données récupérées en utilisant les procédures stockées dans un SSRS signaler

est-il possible dans aa procédure stockée unique pour récupérer toutes les lignes du fichier dans une plage de dates et d'identifier également les valeurs min/max pour chaque groupe récupéré? e

Répondre

0

oui, combiner toute logique en un seul procédure et renvoyer une jointure de vos deux tables temporaires. vous ne donnez pas de code, les noms de colonnes, etc, donc c'est une supposition:

CREATE PROCEDURE AllInOne 
(
    @param1.... 

) 

--populate temp table 1 
... 

--populate temp table 2 
... 

SELECT 
    t1.*, t2.* 
    FROM #Temp1   t1 
     INNER JOIN #temp2 t2 ON t1.PK=t2.PK 
    ORDER BY .... 

go 
+0

Merci pour votre réponse KM. Il n'y a qu'une seule table avec 3 colonnes - horodatage, source et valeur. Les données sont collectées pour une source (au moins) toutes les secondes. La situation ici est que j'ai besoin de toutes les lignes (valeurs) pour la source spécifiée dans un intervalle de temps de date et j'ai également besoin d'identifier les valeurs min et max pour chacune des sources. Je veux éviter d'utiliser deux tables temporaires (une dans chaque procédure stockée) pour extraire les données et voir si je peux le faire avec une seule procédure stockée. – Rajeev

0

SSRS ne peut gérer un ensemble de données à partir d'un ResultSet.

Sans utiliser de table temporaire (comme la réponse de KM), il s'agit de 2 appels à la base de données.

Cependant, si je vous lis bien, les 2 résultats sont fondamentalement différents: le min/max est une opération sur le 1er jeu de résultats après le filtrage et non sur les données d'origine.

Ainsi, vous pouvez le faire dans SSRS si vous regroupez dans un contrôle de table à l'aide Min et le réglage du paramètre Scope comme groupe

Questions connexes