-2
votes

Sélectionnez les données basées sur une jointure intérieure ou gauche dans le tableau B

J'ai la table A et Table B Où je souhaite sélectionner des données de Tableau A (Empid) avec quelques jointures et clauses. Maintenant, je dois appliquer rejoindre le tableau B (Empid, Npinumber, NPiendDate) Tous les archives sont facultatifs.

mais la condition est que NPiendDate est le champ facultatif dans notre base de données, comme npienddate est null ou npienddate> = actuelDate code> écrivez maintenant à la requête p>

1.Sélectionnez les données de A & B de la table A & B Si Npinumber est existez
2.Sélectionnez les données de la table A & B si NPiendDate est NULL ou NPIENDDATE> = COURREDATE P>

COURCENTDate est le suivant: 27/06/2018 P>

A Table: P>

+-------+-----------+------------+
| EMPID | NPINumber | NPIEndDate |
+-------+-----------+------------+
|     1 |      1001 | NULL       |
|     3 |     12345 | 27/06/2018 |
|     4 |           |            | 
+-------+-----------+------------+


6 commentaires

Veuillez fournir un exemple de données et les résultats attendus.


Voulez-vous deux questions ou une seule pour aller chercher vos données?


Seule requête seulement


Où est statelicenseenddate dans votre exemple?


S'il vous plaît dans les questions de code donnez un exemple de reproductible minimal - Coupe et code de coller et de coller; Exemple d'entrée avec la sortie souhaitée et réelle (y compris les messages d'erreur Verbatim); Tags et spécifications claires et explication. Cela inclut le moindre code que vous puissiez donner que le code que vous affiche est OK étendu par le code que vous affichez n'est pas correct. (Débogage fondamental.) Pour SQL comprenant le DBMS / Produit et DDL, qui inclut les contraintes et les index et l'introtallation de la table de base. Lorsque vous donnez une relation (navire) / association ou table (base ou résultat de la requête), indiquez quelle ligne d'information indique-elle sur la situation des affaires en termes de valeurs de colonne.


Qu'est-il arrivé quand vous avez essayé de rejoindre? Montrez quelles pièces pertinentes vous pouvez faire et expliquer la première place que vous êtes bloqués. À l'heure actuelle, vous vous demandez simplement de réécrire un manuel avec un tutoriel sur mesure et faites votre travail (home) et vous n'avez montré aucune recherche ou autre effort. Les décharges des exigences ne sont pas des questions sur le sujet. S'il vous plaît voir Comment demander , hits Googling 'Stackexchange Homework' & the votant Flèche Mousever Textes. Ce n'est pas clair. Utilisez suffisamment de mots, de phrases et de références à des parties d'exemples pour dire clairement et parfaitement ce que vous voulez dire.Ps clarifiez via des modifications, pas de commentaires.


4 Réponses :


0
votes

Selon ce que je comprends

SELECT 
 DATA 
FROM
  A
INNER JOIN B
ON (A.EmpID = B.EMPID AND NPIEndDate >= CurrentDate AND (NPIEndDate = '' or NPIEndDate is null))


0 commentaires

0
votes

C'est une joindre simple avec quelques conditions dans le clause xxx

xxx


0 commentaires

0
votes

Si j'ai compris votre question, vous devez faire un rejoindre entre les tables où Empid code> est identique à celui d'appliquer votre filtre.

SELECT 
  A.EmpID, B.NPINumber, B.NPIEndDate 
FROM 
  [Table A] A LEFT JOIN [Table B] B ON A.EmpID = B.EmpID 
WHERE 
  B.EmpID IS NULL 
  OR (NOT B.NPINumber IS NULL AND
  (B.[NPIEndDate] IS NULL OR B.[NPIEndDate] >= '2018/06/27'));


2 commentaires

Il exclut ces enregistrements de la table A aussi où l'IMP ID de la table A n'a pas NPiendDate est NULL


Je pense que c'est ce dont vous avez besoin. S'il vous plaît voir la réponse ci-dessus @sandeep.



1
votes

Vous pouvez essayer ceci:

SELECT 
      a.EMPID,b.NPINumber,b.NPIEndDate 
FROM A 
    LEFT JOIN B 
          ON a.EMPID=b.EMPID
WHERE ISNULL(b.NPIEndDate,GETDATE())>='2018-06-27 00:00:00.000'


0 commentaires