Je suis en train de créer un site Web pour les agents immobiliers et les locataires. Les locataires peuvent s'inscrire et remplir leurs emplacements souhaités pour les propriétés, y compris la rue, la ville et le code postal. Une fois qu'ils se sont inscrits, cela envoie automatiquement des courriels aux agents dont les propriétés correspondent à ces critères de recherche.Requête SQL pour trouver les valeurs correspondantes en fonction de l'entrée de l'utilisateur
Actuellement, la requête est configurée comme suit pour qu'elle corresponde à la rue, à la ville ou au code postal.
<%
Dim rspropertyresults
Dim rspropertyresults_numRows
Set rspropertyresults = Server.CreateObject("ADODB.Recordset")
rspropertyresults.ActiveConnection = MM_dbconn_STRING
rspropertyresults.Source = "SELECT * FROM VWTenantPropertiesResults "
'WHERE (ContentStreet = 'Holderness Road') OR (ContentTown = 'Hull') OR (ContentPostCode = 'HU')
rspropertyresults.Source = rspropertyresults.Source& "WHERE (ContentStreet = '" & Replace(rspropertyresults__varReqStreet, "'", "''") & "'"
rspropertyresults.Source = rspropertyresults.Source& "OR ContentTown = '" & Replace(rspropertyresults__varReqTown, "'", "''") & "' "
rspropertyresults.Source = rspropertyresults.Source& "OR ContentTrimmedPostCode = '" & Replace(varPostcode, "'", "''") & "') "
rspropertyresults.Source = rspropertyresults.Source& "AND ((ContentBedRooms >= " & Replace(rspropertyresults__varBedroomsNoMin, "'", "''") & " "
rspropertyresults.Source = rspropertyresults.Source& "AND ContentBedRooms <= " & Replace(rspropertyresults__varBedroomsNoMax, "'", "''") & ") "
rspropertyresults.Source = rspropertyresults.Source& "AND (ContentPrice > = " & Replace(rspropertyresults__varPriceMin, "'", "''") & " "
rspropertyresults.Source = rspropertyresults.Source& "AND ContentPrice <= " & Replace(rspropertyresults__varPriceMax, "'", "''") & ")) " & varSQL & " "
rspropertyresults.Source = rspropertyresults.Source& "ORDER BY ContentPrice " & Replace(rspropertyresults__varSortWay, "'", "''") & " "
rspropertyresults.CursorType = 0
rspropertyresults.CursorLocation = 2
rspropertyresults.LockType = 1
rspropertyresults.Open()
rspropertyresults_numRows = 0
%>
Cependant, le client a demandé qu'au lieu de faire correspondre seulement sur l'une des valeurs, il a besoin de travailler de telle sorte que si par exemple Street et match de ville, courriel puis cet agent immobilier ou si Ville et code postal correspondre, puis envoyer un email à cet agent immobilier.
Comme vous pouvez l'imaginer, je pense que la requête deviendrait assez complexe, mais je ne sais pas comment concevoir au mieux une requête comme celle-ci.
Je me demandais si quelqu'un pouvait m'aider ou m'aider dans la bonne direction?
+1: Bonne solution - peut-être UNION ALL serait mieux dans ce cas, puisque vous groupez par ID de toute façon? – RedFilter
Hey Quassnoi, Nous vous remercions de votre solution. J'ai essayé ceci juste dans une vue d'abord pour voir si elle s'exécute correctement. (J'ai également changé les identifiants à ContentID). Il s'exécute, mais ne renvoie aucun résultat. Cela pourrait être que j'ai autre chose qui interfère avec les résultats. Je sais qu'il y a certainement des données qui correspondent à 2 ou 3 des conditions. – doubleplusgood
'@ OrbMan': à droite, merci. Non seulement c'est mieux, mais il est nécessaire que la requête fonctionne correctement. – Quassnoi