2016-12-23 6 views
-1

J'ai une table, comme indiqué ci-dessous:enregistrements agrégés dans la requête MySQL

document no | payment terms | Purchase order no 
------------------------------------------------- 
1700000000 | NT30   | 
------------------------------------------------- 
1700000000 |    | HPI115881 
------------------------------------------------- 
1700000000 |    | HPI115881 
------------------------------------------------- 
1700000002 | NT30   | 
------------------------------------------------- 
1700000002 |    | HPI163799 
------------------------------------------------- 
1700000003 | NT30   | 
------------------------------------------------- 
1700000003 |    | HPI160969 
------------------------------------------------- 
1700000004 | NT30   | 
------------------------------------------------- 
1700000004 |    | HPI13641 

Comme vous pouvez le voir, pour le même document n °, j'ai 2 enregistrements - une avec conditions de paiement et d'autres avec Commande n °.

Ce que je veux est d'avoir une seule ligne pour tous les numéros de documents avec les trois colonnes peuplées comme ci-dessous:

document no payment terms Purchase order no 
1700000000  NT30    HPI115881 

Toute aide à ce sujet sera très apprécié. Merci.

+0

Qu'avez-vous essayé? Montrez votre code –

Répondre

0

Juste une suggestion, vous pouvez obtenir en suivant la requête

select 
    document_no, 
    group_concat(distinct 'payment terms') as 'payment terms', 
    group_concat(distinct 'Purchase order no') as 'Purchase order no' 
from table 
group by document_no 

Grouper par document_no affichera distinct de document_no, en même temps vous pouvez group_concat afin d'ignorer la valeur null et afficher les données attendues.

+1

Merci beaucoup Ram. Votre solution fonctionne comme un charme. – user7262097

0

Je ne sais pas s'il y a une méthode plus rapide, mais vous pouvez résoudre votre problème en 2 voies (au moins):

Méthode 1 (tous en mémoire):

  • select tous les dossiers où les conditions de paiement n'est pas vide (ou null)
  • sélectionner tous les enregistrements où l'ordre d'achat n'est pas vide non (ou nul)
  • mise à jour tous les enregistrements de la première sélection
  • supprimer tous les re cordons de la seconde

Méthode 2:

+0

Merci Dabr. Comment fusionner deux tables basées sur le même index? J'ai déjà fait l'étape 1 de votre suggestion. – user7262097

+0

Merci Dabr. Je prévois d'utiliser la méthode 2. Comment fusionner deux tables basées sur le même index? J'ai déjà fait l'étape 1 de votre suggestion. Aussi, pouvez-vous fournir un extrait de code pour le faire comme vous l'avez mentionné dans la méthode 1. – user7262097

+0

ici un indice https://www.codeproject.com/Questions/429140/combine-two-tables-value-into-one-table- valeur-et – Dabr