2009-10-07 6 views
1

J'ai deux questions différentes:Fusionner le résultat de deux requêtes dans SQL Server

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' 
) 

et

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' 

Je suis en train de fusionner ces deux afin que je puisse obtenir PB_BANK_CODE, PB_BANK_NAME et ISNULL(SUM(PC_AMOUNT),0) dans un seul ensemble de données.

Comment puis-je fusionner ces deux requêtes dans SQL Server 2005?

+4

Sur quelles touches (autres que CAPS) souhaitez-vous JOINDRE ces tableaux/résultats de sortie? –

Répondre

2

cela devrait le faire ...

je pense?

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

Vous avez raison, cela pourrait fonctionner, je ne savais pas que PB_BANK_CODE et PC_BANK_FROM avaient une relation, mais il semble bien sûr que les deux ont la même valeur de '025'. –

9

Vous devez utiliser deux technologies:

  • SQL syntaxe JOIN (rechercher dans la documentation de votre base de données, vous ne l'avez pas mentionné ce que la base de données que vous utilisez)
  • Les touches minuscules sur votre clavier d'ordinateur.
0

S'il existe une relation entre les tables GLAS_PDC_BANKS et GLAS_PDC_CHEQUES alors vous pouvez juste joindre les deux tables et de faire quelques petites modifications à votre requête. Sans savoir quel type de relation existe entre ces deux tableaux, je ne peux pas offrir une réponse plus détaillée.

Questions connexes