Ciao a tutti,
ho una tabella "CONTI " così fatta:
IDConto (CHIAVE - INT)
Distinta (INT)
Importo (NUMERIC)
Tipo (SMALLINT - 1 = ord, 2 = ben)
A seconda del "Tipo" sono memorizzati gli "Importi" o dell'ordinante o del beneficiario. Un esempio di dati è il seguente:
IDConto - Distinta - Importo - Tipo
---------------------------------
1 - 1 - 1000.00 - 1 (ord)
2 - 1 - 500.00 - 2 (ben)
3 - 1 - 250.00 - 2 (ben)
4 - 1 - 250.00 - 2 (ben)
Ad esempio "1000.00" dell'ordinante sono ripartiti su beneficiari diversi per un valore di: 500.00, 250.00, 250.00
Devo fare una select che filtra sia gli importi degli ORD che dei BEN, in modo ad esempio che se inserico (1000.00, ord) mi restituisca solo il recordo numero 1, se invece inserisco anche un valore di importo dell'ordinante deve restituire anche quello/i. Ad esempio con (1000.00, ord) + (250.00, ben) devo avere i record 1,3,4
Ho pensato di usare una SELF JOIN in questo modo, ma non mi da il risultato voluto:
E' la strada giusta la self join oppure devo usare qualche altro modo?codice:SELECT ord.IDConto AS IDConto, ord.Distinta AS Distinta, ord.Importo AS Importo_ORD, ord.Tipo AS Tipo_ORD, ben.Importo AS Importo_BEN, ben.Tipo AS Tipo_BEN FROM Conti AS ord, Conti AS ben WHERE ord.Importo BETWEEN '1000.00' AND '1000.00' AND ord.Tipo = 1 AND ben.Importo BETWEEN '0' AND '9999.99' AND ben.Tipo = 2 GROUP BY ord.IDConto, ord.Importo, ord.Distinta, ord.Tipo, ben.Importo, ben.Tipo
GRAZIE

Rispondi quotando