SQL-lause, jossa Use-arvoinen lauseke

Translate

Minulla on taulukko, jossa on useita rivejä ja seuraavat kentät:

PersonName SongName Status

Haluan käyttää nimiä, jotka on valittu useista valintaluetteloista, joiden avulla voin noutaa arvot, ja tehdä sitten lauseke, jossa se näyttää kappaleiden nimet, joita valitut ihmiset voivat kaikki toistaa, joten tila on valmis.

Esimerkiksi:

 PersonName      SongName    Status 
 Holly           Highland    Complete
 Holly           Mech        Complete 
 Ryan            Highland    Complete

Jos valitsen Holly ja Ryan luetteloruudusta ja painan painiketta, kyselyn pitäisi näyttää vain Highland, koska he molemmat tietävät.

This question and all comments follow the "Attribution Required."

Kaikki vastaukset

Translate

Kokeile tätä:

select songName from t
where personName in ('Ryan', 'Holly')
group by songName
having count(distinct personName) = 2

Otoksen määrän tulee vastata ihmisten määrää. Jos tarvitset myös tilan olevanCompleteKäytä tätäwherelauseke edellisen sijasta:

where personName in ('Ryan', 'Holly') and status = 'Complete'
Lähde
sll
Translate
SELECT PersonName, songName, status
FROM table
WHERE name IN ('Holly', 'Ryan')

Jos käytät parametrisoitua tallennettua menettelyä:

  1. Siirrä pilkuilla erotetussa merkkijonossa
  2. Käytä erikoistoimintoa pilkulla erotetun merkkijonon jakamiseksi taulukon arvon muuttujaksi
  3. KäyttääINNER JOIN ON t.PersonName = newTable.PersonNamekäyttämällä taulukon muuttujaa, joka sisältää nimissä välitetyt
Lähde
Translate
Select t1.SongName
From tablename t1
left join tablename t2
 on t1.SongName = t2.SongName
    and t1.PersonName <> t2.PersonName
    and t1.Status = 'Complete' -- my assumption that this is necessary
    and t2.Status = 'Complete' -- my assumption that this is necessary
    and t1.PersonName IN ('Holly', 'Ryan')
    and t2.PersonName IN ('Holly', 'Ryan')
Lähde
Leave a Reply
You must be logged in to post a answer.
Kirjailijasta