Результат слияния двух запросов в SQL Server - PullRequest
1 голос
/ 07 октября 2009

У меня есть два разных запроса:

SELECT 
    PB_BANK_CODE,
    PB_BANK_NAME
FROM GLAS_PDC_BANKS 
WHERE PB_COMP_CODE='1' 
AND PB_BANK_CODE='025' 
AND PB_BANK_CODE IN (
    SELECT DISTINCT PC_BANK_FROM
    FROM GLAS_PDC_CHEQUES 
    WHERE PC_BANK_FROM ='025' 
    AND ISNULL(PC_DISCD,'X') != 'C'
    AND PC_DUE_DATETIME BETWEEN '05/05/2008' AND '05/06/2008'
)

и

SELECT ISNULL(SUM(PC_AMOUNT),0) 
FROM GLAS_PDC_CHEQUES 
WHERE PC_BANK_FROM ='025'
AND ISNULL(PC_DISCD,'X') != 'C'
AND PC_DUE_DATETIME BETWEEN '05/05/2008' AND '05/06/2008' 

Я пытаюсь объединить эти два, чтобы получить PB_BANK_CODE, PB_BANK_NAME и ISNULL(SUM(PC_AMOUNT),0) в одном наборе данных.

Как объединить эти два запроса в SQL Server 2005?

Ответы [ 3 ]

8 голосов
/ 07 октября 2009

Вам нужно использовать две технологии:

  • Синтаксис SQL JOIN (посмотрите его в документации по базе данных, вы не упомянули, какую базу данных используете)
  • Клавиши в нижнем регистре на клавиатуре компьютера.
2 голосов
/ 07 октября 2009

это должно сделать это ...

Я думаю?

SELECT 
   PB_BANK_CODE,
   PB_BANK_NAME,
   ISNULL(SUM(PC_AMOUNT),0)
FROM GLAS_PDC_BANKS inner join GLAS_PDC_CHEQUES 
    on GLAS_PDC_BANKS.PB_BANK_CODE = GLAS_PDC_CHEQUES.PC_BANK_FROM
WHERE  PB_COMP_CODE='1' 
   AND PB_BANK_CODE='025' 
   AND ISNULL(PC_DISCD,'X') != 'C'
   AND PC_DUE_DATETIME BETWEEN '05/05/2008' AND '05/06/2008'
0 голосов
/ 07 октября 2009

Если между таблицами GLAS_PDC_BANKS и GLAS_PDC_CHEQUES существует связь, вы можете просто объединить две таблицы и внести небольшие изменения в свой запрос. Не зная, какой тип связи существует между этими двумя таблицами, я не могу предложить более подробный ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...