Сложная выборка. MS T-SQL
От: Oper_Troll  
Дата: 12.04.06 06:41
Оценка:
В общем есть запрос производящий выборку из нескольких таблиц.
Приблизительный вид:

SELECT   distinct  b.DF_NAME, a.FC_PREDMET, a.FCA_MAIL_NUM, a.FCA_MAIL_DATE , a.FC_CONTRACTOR, a.FC_NUM, c.DD_DATE, a.FC_DATE_BEGIN, 
                   a.FC_DATE_END, a.FC_CURRENCY, a.FC_SUM_NDS, d.DG_NAME, a.FCA_GRNT_SUM, e.DFS_PUNTKT_SM
FROM         FCT_CONTRACT a, DIM_FILIAL b, DIM_TIME c, DIM_GUARANTEE d, DIM_FIN_SOURCE e, FCT_FS_CONTRACT f
where       a.KID_DIM_FILIAL = b.KID and a.KID_DIM_TIME = c.KID and f.KID_FCT_CONTRACT = a.KID and e.KID = f.KID_DIM_FIN_SOURCE


Проблемма заключается в том, что в таблице DIM_FIN_SOURCE содержиться несколько значений относящиеся к "основной" таблице FCT_CONTRACT т.е. Для каждой получаемой записи, получается несколько значений DFS_PUNTKT_SM, их можно представить как конкантенацию значений, но как это релиазовать ни как не соображу!
Re: Сложная выборка. MS T-SQL
От: pkarklin  
Дата: 12.04.06 06:46
Оценка:
Здравствуйте, Oper_Troll, Вы писали:

O_T>В общем есть запрос производящий выборку из нескольких таблиц.

O_T>Приблизительный вид:

O_T>
O_T>SELECT   distinct  b.DF_NAME, a.FC_PREDMET, a.FCA_MAIL_NUM, a.FCA_MAIL_DATE , a.FC_CONTRACTOR, a.FC_NUM, c.DD_DATE, a.FC_DATE_BEGIN, 
O_T>                   a.FC_DATE_END, a.FC_CURRENCY, a.FC_SUM_NDS, d.DG_NAME, a.FCA_GRNT_SUM, e.DFS_PUNTKT_SM
O_T>FROM         FCT_CONTRACT a, DIM_FILIAL b, DIM_TIME c, DIM_GUARANTEE d, DIM_FIN_SOURCE e, FCT_FS_CONTRACT f
O_T>where       a.KID_DIM_FILIAL = b.KID and a.KID_DIM_TIME = c.KID and f.KID_FCT_CONTRACT = a.KID and e.KID = f.KID_DIM_FIN_SOURCE
O_T>


O_T>Проблемма заключается в том, что в таблице DIM_FIN_SOURCE содержиться несколько значений относящиеся к "основной" таблице FCT_CONTRACT т.е. Для каждой получаемой записи, получается несколько значений DFS_PUNTKT_SM, их можно представить как конкантенацию значений, но как это релиазовать ни как не соображу!


Сложение символьных полей в запросе
Re: Сложная выборка. MS T-SQL
От: alexdp Украина  
Дата: 12.04.06 11:11
Оценка:
Oper_Troll wrote:

>

> В общем есть запрос производящий выборку из нескольких таблиц.
> Приблизительный вид:
>
> SELECT distinct b.DF_NAME, a.FC_PREDMET, a.FCA_MAIL_NUM, a.FCA_MAIL_DATE , a.FC_CONTRACTOR, a.FC_NUM, c.DD_DATE, a.FC_DATE_BEGIN,
> a.FC_DATE_END, a.FC_CURRENCY, a.FC_SUM_NDS, d.DG_NAME, a.FCA_GRNT_SUM, e.DFS_PUNTKT_SM
> FROM FCT_CONTRACT a, DIM_FILIAL b, DIM_TIME c, DIM_GUARANTEE d, DIM_FIN_SOURCE e, FCT_FS_CONTRACT f
> where a.KID_DIM_FILIAL = b.KID and a.KID_DIM_TIME = c.KID and f.KID_FCT_CONTRACT = a.KID and e.KID = f.KID_DIM_FIN_SOURCE
>
>
>
> Проблемма заключается в том, что в таблице DIM_FIN_SOURCE содержиться
> несколько значений относящиеся к "основной" таблице FCT_CONTRACT т.е.
> Для каждой получаемой записи, получается несколько значений
> DFS_PUNTKT_SM, их можно представить как конкантенацию значений, но как
> это релиазовать ни как не соображу!

Может я не понял задачи, но по-моему left, right join'ы тут помогут.
Posted via RSDN NNTP Server 2.0
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.