Hoi, heb gezocht maar kon niet echt iets vinden dat op mijn probleem leek.
Het probleem is als volgt:
Stel je hebt tabel A, B en C. Een record uit tabel C hoort altijd bij een record uit tabel B en een record uit B hoort altijd bij een record van A. Tabel A is dus de top van de piramide, zeg maar.
Als je gegevens uit tabel A, B en C tegelijk nodig hebt en je gebruikt bv een left join, zullen, voor elk record uit tabel C, de gegevens uit tabel A en B worden herhaald.
Mijn probleem is dat als je uit alle 3 de tabellen een veld nodig hebt, en je SUM() gebruikt op het veld uit tabel B en C, dat de gegevens uit tabel B dubbel worden geteld in de gevallen dat er bij een record van B bijvoorbeeld twee records van C horen.
Ik begrijp wel waarom dat zo is, maar ik vraag me hoe je het voor elkaar kan krijgen dat sum() in tabel B elk uniek record van tabel B maar 1 keer meetelt. Is er misschien een soort 'algemene' oplossing voor zo'n soort probleem (in MS-SQL) ?
Volgen jullie het nog, of willen jullie een voorbeeld?
Het probleem is als volgt:
Stel je hebt tabel A, B en C. Een record uit tabel C hoort altijd bij een record uit tabel B en een record uit B hoort altijd bij een record van A. Tabel A is dus de top van de piramide, zeg maar.
Als je gegevens uit tabel A, B en C tegelijk nodig hebt en je gebruikt bv een left join, zullen, voor elk record uit tabel C, de gegevens uit tabel A en B worden herhaald.
Mijn probleem is dat als je uit alle 3 de tabellen een veld nodig hebt, en je SUM() gebruikt op het veld uit tabel B en C, dat de gegevens uit tabel B dubbel worden geteld in de gevallen dat er bij een record van B bijvoorbeeld twee records van C horen.
Ik begrijp wel waarom dat zo is, maar ik vraag me hoe je het voor elkaar kan krijgen dat sum() in tabel B elk uniek record van tabel B maar 1 keer meetelt. Is er misschien een soort 'algemene' oplossing voor zo'n soort probleem (in MS-SQL) ?
Volgen jullie het nog, of willen jullie een voorbeeld?