Edit:
Merci tout. Cela aurait dû être CustomerID, non productible, reliant ces deux tables. Même avec cela, la requête n'a pas renvoyé d'identifiants de clients en raison de ce que dit Squirrel; C'était une mauvaise requête. J'ai trouvé un meilleur succès en utilisant la syntaxe suivante: p> J'essaie de retourner Erreur SQL [207] [S0001]: Nom de colonne non valide 'Producteur' P>
blockQuote> Ceci est mon bloc de code: p> toute aide de correction de l'erreur syntaxique serait appréciée. Merci! P> p> CustomerID code> S qui ont acheté deux éléments avec un spécifique ProductID code> S (710 et 715) - mais n'a pas acheté 716 - dans la colonne productide code> d'une deuxième table. J'essaie de jouer cela comme une sous-requête, mais je reçois une erreur p>
3 Réponses :
Essayez quelque chose comme ceci: exécutez d'abord les instructions de sous-sélection d'abord pour obtenir la syntaxe à droite pour cette pièce, pour votre moteur SQL. Par exemple, exécutez cette requête SQL d'abord: p> et lorsque vous avez la syntaxe valide et les résultats valides, vous pouvez utiliser ce sélection comme une instruction SOUS-SELECT.
Idem pour le sous-sélection "non in". Exécutez-le et obtenez des résultats valides puis inclure-le entre parenthèses comme sous-sélection. P> p>
Je vais essayer cela comme une alternative. Merci!
C'est ma prise sur ceci:
Je crois que ProductID est en salopeOrderDetail mais je ne pense pas que le produit devrait être dans la table des clients. Je crois que la clientèle devrait être le lien entre les deux tables si le modèle est effectué à droite
Non, cela n'a pas fonctionné. Il n'a pas renvoyé aucun ID de client. J'ai créé maintenant le code, que j'ai posté sous mon édition en haut. Celui-là semble faire l'affaire! Merci quand même!
Ok, je vois, vous avez supprimé la contrainte sur le produit 716.
OK sur la question, mais à l'avenir, il est bon de fournir des échantillons de données, des colonnes pour obtenir le point de vue. Vous ne montrez pas comment une commande de vente se joint au détail de la commande de vente. Cela étant dit, je vais fournir une supposition éduquée à ce que vous avez.
Je ferais une interrogation une fois et que vous obtenez un compte par produit qualifié ... puis appliquez-le d'avoir. Il est possible pour une personne d'avoir plusieurs commandes et que chaque produit pourrait être sur un ordre différent (à moins que tout ce que vous vous souciez du même ordre, ce soit légèrement différent). P>
select
SO.CustomerID
-- at THIS point, I only care did the person have any of the products
max( case when SOD.ProductID = 710 then 1 else 0 end ) as HasProduct1,
max( case when SOD.ProductID = 715 then 1 else 0 end ) as HasProduct2,
max( case when SOD.ProductID = 716 then 1 else 0 end ) as HasProduct3
from
Sales.SalesOrder SO
JOIN Sales.SalesOrderDetail SOD
on SO.SalesOrderID = SOD.SalesOrderID
group by
SO.CustomerID
having
-- NOW, we can apply the product 1 & 2 purchased, but NOT product 3
max( case when SOD.ProductID = 710 then 1 else 0 end ) = 1
AND max( case when SOD.ProductID = 715 then 1 else 0 end ) = 1
AND max( case when SOD.ProductID = 716 then 1 else 0 end ) = 0
Approche intéressante. J'aime ça. Merci!
Pouvons-nous voir le schéma des tables Sales.Customer et vente.SalesAserDeTetail?
Essayez quelque chose comme ceci: Sélectionnez SC.Customéride de Sales.Customer SC Où Producteur dans (Sélectionnez Producteur à partir de Sales.SalesArtionDetail SOD où Sod.Productid in (710, 715)) et ProductId non dans (Sélectionnez ProductId de Sales.SalesArserDeTetail de SOD .Productid = 716)
Êtes-vous sûr que la colonne
ProductID CODE> est dansSometchSOrderDetail CODE> TABLE?@Abdelrahmangarah, je crois que ProductID est en salopeOrderDetail mais je ne pense pas que le produit devrait être dans la table des clients. Je crois que la clientèle devrait être le lien entre les deux tables si le modèle est fait correctement
Votre premier 2
où code> condition n'a pas de sens. Effectivement, vous ditesoù productid in (710) et productid in (715) code> et le résultat estfaux code> il n'y aura pas deProductID code> qui peut satisfaire ces 2 conditions. Vous voudrez peut-être jeter un oeil àexistant () code>@Zip - Merci pour la prise. Vous êtes correct que l'ID de produit n'est pas dans la table du client. ID client est la colonne de liaison. Cependant, il ne renvoie aucun résultat. Je crois que l'écureuil était correct - j'ai une mauvaise requête. J'ai essayé une méthode différente et crois que j'ai atteint le résultat souhaité.
J'ai ajouté une requête comme une réponse, avez-vous essayé?