J'ai une requête compliquée que je ne peux pas créer. Je pense à le faire avec JOIN mais je ne sais pas par où commencer. Je vais essayer d'expliquer mon problème aussi clairement que possible. Je crée un logiciel qui traite des compensations. Chaque compensation peut avoir plusieurs liens (comme dans une chaîne). Chaque lien est essentiellement un client. Alors, je vais vous dire les structures de table:Requête compliquée avec SQLite
client
CustomerID | Name
Compensation
CompensationID | CustomerID | Date
Lien
LinkID | CompensationID | CustomerID | Sequential
Maintenant, le champ séquentiel augmente avec chaque lien ajouté . Permettez-moi de démontrer en remplissant les tables avec des données:
CustomerID | Name
-----------+-----
0 | Foo
1 | Bar
2 | Baz
CompensationID | CustomerID | Date
---------------+------------+------
0 | 0 | 2-2-2010
1 | 1 | 2-3-2010
LinkID | CompensationID | CustomerID | Sequential
-------+----------------+------------+-----------
0 0 0 0
1 0 2 1
2 0 1 2
Donc, peu importe ce que le LinkID/CompensationID/CustomerID Séquentielle passe toujours de 0 à N dans le tableau Liens (selon le nombre de liens d'une rémunération a) .
Maintenant, voici le problème: je veux énumérer tous dont de rémunération de répondre de lien aux exigences suivantes:
Chercher dans Liens CustomerID = A séquentielle = 0 (premier lien) et séquentielle = DERNIER (dans ce cas 2) Liste des compensations
Voici ce que je suis arrivé à ce jour:
SELECT * FROM Compensation JOIN Link ON Compensation.ID = Link.CompensationID
WHERE Link.CustomerID=A AND Link.Sequential = 0 AND Link.Sequential=LAST
Ceci est plus ou moins pseudo SQL car je sais Link.Sequential ne peut pas être 0 et une autre valeur en même temps, mais je ne sais pas comment faire cela.
Toute aide serait appréciée.
Merci.
P.S. Désolé pour le grand mur de texte.
Essayez avec 'Link.Sequential = 0 OU Link.Sequential = LAST' (ET n'évaluera quand 0 est le DERNIER - jamais s'il y a plus d'une rangée dans la table des liens). –
Donc, vous voulez tous les premiers liens et tous les derniers liens pour un seul client? – OrangeDog
J'ai fondamentalement besoin de vérifier si les première et dernière lignes du lien ont le code client de A. J'ai donc besoin de vérifier deux lignes, pas une seule. – vanneto