Και αυτό επαναλαμβάνεται άλλες 258 φορές??? Και δεν απάντησες στην ερώτηση για τα χρηματιστηριακά
Αν αυτό το ID_XX είναι το ίδιο σε όλες τις περιπτώσεις και έχει σχετικά λίγες τιμές, μπορείς να φτιάξεις ένα select που θα επιστρέφει μία ειδική τιμή για κάθε συνδυασμό. Μετά κάνεις group με τα κλειδιά ΚΑΙ το νέο πεδίο, πχ.
LEFT JOIN
( SELECT key1, key2, key3,InstrumentType,SUM(p.POSO)
FROM
(SELECT key1, key2, key3, p.POSO,
(CASE WHEN T1.ID_XX IN (1,2,3) THEN 'Bond'
WHEN T1.ID_XX IN (4,5,6) THEN 'Stock'
...
) AS InstrumentType
FROM T1) AS PricesPerType
GROUP BY key1, key2, key3, InstrumentType ) AS DailyPrices
ON DailyPrices.Key1=L.Key1 ...
Όπως βλέπεις, υποθέτω ότι μιλάμε για χρηματιστηριακά έτσι για πλάκα.
Αν τώρα οι διάφορες τιμές είναι πολλές, και για να έχεις 258 επαναλήψεις μάλλον είναι, μπορείς να φτιάξεις ένα lookup πίνακα ο οποίος ως κλειδί θα περιέχει την τιμή του ID_XX και δεύτερο πεδίο το InstrumentType στο οποίο αντιστοιχεί. Έτσι, αντί για το CASE WHEN θα κάνεις ένα join μεταξύ T1 και Lookup1 για να πάρεις την τιμή του InstrumentType και μετά θα κάνεις πάλι group στα key1,2,3 και InstrumentType
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos