SQL Server 2005 Coluna computada resultado do agregado do valor de outra tabela
-
03-07-2019 - |
Pergunta
Desculpe pelo longo título de pergunta.
Acho que estou com um perdedor neste, mas na chance.
É possível fazer o cálculo de um campo calculado em uma tabela o resultado de uma função agregada aplicada a um campo em outra tabela.
ou seja
Você tem uma mesa chamada 'Caneca', isso tem um filho chamado 'cor' (que faz minha cabeça do Reino Unido doer, mas o fornecedor é dos EUA, o que você vai fazer?) E isso, por sua vez, tem um filho chamado ' Tamanho'. Cada tabela possui um campo chamado vendido.
O tamanho.
Você deseja que a color.Sold seja um agregado de tamanho da soma.
Você quer que a caneca seja um agregado de cor soma.
Existe alguma maneira de fazer canecas.
Solução
Você não pode ter uma coluna computada diretamente referencia uma tabela diferente, mas pode fazer referência a uma função definida pelo usuário. Aqui está um link para um exemplo de implementação de uma solução como essa.
http://www.sqlservercentral.com/articles/user-defined+functions/complexcomputedcolumns/2397/
Outras dicas
Não, não é possível fazer isso. Uma coluna calculada só pode ser derivada dos valores de outros campos na mesma linha. Para calcular um agregado fora de outra tabela, você precisa criar uma visualização.
Se o seu aplicativo precisar mostrar as estatísticas, faça as seguintes perguntas:
- É realmente necessário mostrar isso em tempo real? Se sim, por quê? Se for realmente necessário fazer isso, você precisará usar gatilhos para atualizar uma tabela. este Links para um pequeno artigo da Wikipedia sobre desnormalização. Os gatilhos afetarão o desempenho da gravação nas atualizações da tabela e depende dos gatilhos estarem ativos.
- Se for necessário apenas para fins de relatório, você poderá fazer o cálculo em uma visualização ou relatório.
- Se for necessário suportar relatórios ad-hoc frequentes, você pode estar nos reinos de um processo de Data Mart e ETL noturno.