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.

Foi útil?

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:

  1. É 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.
  2. Se for necessário apenas para fins de relatório, você poderá fazer o cálculo em uma visualização ou relatório.
  3. Se for necessário suportar relatórios ad-hoc frequentes, você pode estar nos reinos de um processo de Data Mart e ETL noturno.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top