Ho una tabella di SalesDetails, guardando come questo:Intersect select su colonne specifiche
InvoiceID, LineID, Product
1,1,Apple
1,2,Banana
2,1,Apple
2,2,Mango
3,1,Apple
3,2,Banana
3,3,Mango
La mia esigenza è quella di restituire le righe in cui una fattura contenente le vendite di entrambi: mela e banana, ma se ci sono altri prodotti su tale fattura, non voglio quelli.
Così il risultato dovrebbe essere:
1,1,Apple
1,2,Banana
3,1,Apple
3,2,Banana
ho provato la seguente:
Select * from SalesDetails where Product = 'Apple'
Intersect
Select * from SalesDetails where Product = 'Banana'
non ha funzionato, perché sembra Intersect deve corrispondere tutte le colonne.
Quello che sto sperando di fare è:
Select * from SalesDetails where Product = 'Apple'
Intersect ----On InvoiceID-----
Select * from SalesDetails where Product = 'Banana'
C'è un modo per fare questo?
O devo Intersezione prima a InvoiceIDs solo con i miei criteri, quindi selezionare le file di quei InvoiceIDs in cui i criteri si accompagna ancora una volta, Ie:
Select * From SalesDetails
Where Product In ('Apple', 'Banana') And InvoiceID In
(
Select InvoiceID from SalesDetails where Product = 'Apple'
Intersect
Select InvoiceID from SalesDetails where Product = 'Banana'
)
Che sembra un po 'uno spreco come è esaminare i criteri due volte.
Quale ver stai usando SQL Server? – Arion
Partecipa! – jarlh
SQL Server 2014, Developer Edition – Xinneh