Ich habe eine Situation, in der ich versuche, Mitglieder Telefonnummern für diejenigen zurück, die Termine für den nächsten Tag haben. Das Problem ist die Art und Weise, in der Daten in der Datenbank gespeichert werden. Die MITGLIEDER-Tabelle hat vier Felder: phone1, phone2, phone3, phone4, mit vier zusätzlichen Feldern von phone1label, phone2label, phone3label und phone4label. In der Benutzeroberfläche kann der Benutzer festlegen, welche Telefonnummer aus einem Drop-down-Menü besteht, wobei 4 Mobilgeräte sind. Gibt es also eine Möglichkeit, nur das Feld für jeden Mitgliedsdatensatz zurückzuziehen, wo das Telefon # label = '4' ist? Zum Beispiel könnte John Doe seine Handynummer in phone1 mit phone1label = '4' haben und John Q Public könnte seine Handynummer im Feld phone2 mit phone2label = '4' haben.SQL Conditional Field Retrieval
Dann brauche ich diese Logik auf die folgende Abfrage hinzuzufügen:
SELECT SCSERVICES.servicecode,
SCSERVICES.servicename,
SCSESSIONS.scheduleid,
SCSERVICES.servicetype,
SCSERVICECATEGORIES.servicecategory,
SCSCHEDULES.scheduledatefrom,
MEMBERS.lname,
MEMBERS.fname,
MEMBERS.phone1,
MEMBERS.phone2,
MEMBERS.phone3,
MEMBERS.phone4,
MEMBERS.phone1label,
MEMBERS.phone2label,
MEMBERS.phone3label,
MEMBERS.phone4label,
SCSCHEDULES.timestart,
SCSCHEDULES.schedulestatus
FROM SCSESSIONS
INNER JOIN SCSERVICES ON SCSESSIONS.serviceid = SCSERVICES.serviceid
INNER JOIN SCSERVICECATEGORIES ON SCSERVICES.servicecategoryid = SCSERVICECATEGORIES.servicecategoryid
INNER JOIN SCSCHEDULES ON SCSESSIONS.scheduleid = SCSCHEDULES.scheduleid
INNER JOIN MEMBERS ON SCSCHEDULES.memid = MEMBERS.memid
WHERE (SCSERVICECATEGORIES.servicecategory = 'Spa')
AND (SCSERVICES.siteid = '779')
AND (CAST(SCSCHEDULES.scheduledatefrom AS DATE) = '04-27-2016')
AND (SCSCHEDULES.schedulestatus = '1')
Kann jemand mehr als eine Handynummer haben? –