在同一查询中连接1:N关系的值

时间:2014-09-23 13:55:07

标签: sql sql-server sql-server-2005

我有两个表有1:N的关系。 我想做一个查询从父表中选择数据并列出子表中一列的所有结果而不使用游标。

这是错误的查询(它为CC表中的每个值提供了不同的行。)

SELECT ROW_NUMBER() OVER (ORDER BY C.NUM_CONTRATO) AS 'Ligação',
       C.NUM_CONTRATO as 'CONTRATOCLIENTE',
       'N' as 'ALTERACAO',
       C.TXT_NOME_CONTRATO as 'RESUMO',
       C.COD_TIPO_CONTRATO as 'CATEGORIA',
       CC.NUM_FORNECEDOR as 'FORNECEDORCLIENTE',
       C.NUM_USUARIO_APROVACAO as 'TAG',
       C.DTH_INICIO_VALIDADE as 'VALIDADE_INICIO',
       C.DTH_TERMINO_VALIDADE as 'VALIDADE_FIM',
       '' as 'COND_PAGTO',
       '' as 'FRETE',
       M.COD_MOEDA as 'MOEDA',
       CASE C.SIT_CONTRATO WHEN 'A' THEN '1' WHEN 'B' THEN '3' END as 'STATUS',
       '' as 'VALOR',
       C.DTH_APROVACAO as 'DATA_DOCUMENTO',
       C.DES_CONTRATO as 'OBSCLI',
       '' as 'FATURAMENTOMINIMO',
       '' as 'COTACAO',
       '' as 'TRANSPORTADORACLIENTE'
  FROM CONTRATO C
  JOIN MOEDA M
    ON C.COD_MOEDA = M.COD_MOEDA
  JOIN CATEGORIA_CONTRATO CC
    ON CC.NUM_CONTRATO = C.NUM_CONTRATO

我希望将表CONTRATO中每一行的所有CC.NUM_FORNECEDOR放在一行中。

感谢所有帮助。

0 个答案:

没有答案