Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31
  1. #1

    Query per filtrare più risultati

    Scusate ma mi sto perdendo dentro questa query.

    Ho un form con delle select popolate dinamicamente e delle check box che inviano i dati tramite un form (Metodo GET) a una pagina che li elabora.
    Vi posto il form:
    codice:
    <form action="index_report.asp?codTipoArticolo=<%=(rsDettagli_3.Fields.Item("codTipoArticolo").Value)%>&amp;codFornitore=<%=(rsDettagli_3.Fields.Item("codFornitore").Value)%>&amp;codMarca=<%=(rsDettagli_3.Fields.Item("codMarca").Value)%>&amp;codTaglia=<%=(rsDettagli_3.Fields.Item("codTaglia").Value)%>&amp;codColore=<%=(rsDettagli_3.Fields.Item("codColore").Value)%>&amp;check 1=<%=(rsDettagli_3.Fields.Item("negozio").Value)%>&amp;check 2=<%=(rsDettagli_3.Fields.Item("negozio").Value)%>&amp;check 3=<%=(rsDettagli_3.Fields.Item("negozio").Value)%>&amp;check 4=<%=(rsDettagli_3.Fields.Item("negozio").Value)%>&amp;check 5=<%=(rsDettagli_3.Fields.Item("negozio").Value)%>" method="get" name="form98" target="_self" id="form98">
                      <table width="100%" border="0" cellspacing="0" cellpadding="0">
                        <tr>
                          <td width="38%" align="left" class="testo">Fornitore:</td>
                          <td width="62%" align="left" class="testo"><select name="codfornitore" class="testo" id="codfornitore">
                            <%
    While (NOT rsFornitore.EOF)
    %>
                            <option value="<%=(rsFornitore.Fields.Item("codFornitore").Value)%>"><%=(rsFornitore.Fields.Item("fornitore").Value)%></option>
                            <%
      rsFornitore.MoveNext()
    Wend
    If (rsFornitore.CursorType > 0) Then
      rsFornitore.MoveFirst
    Else
      rsFornitore.Requery
    End If
    %>
                          </select></td>
                        </tr>
                        <tr>
                          <td colspan="2" align="left" class="testo">[img]immagini/null.gif[/img]</td>
                          </tr>
                        <tr>
                          <td align="left" class="testo">Categoria:</td>
                          <td align="left" class="testo"><select name="codTipoArticolo" class="testo" id="codTipoArticolo">
                            <%
    While (NOT rsCategoria.EOF)
    %>
                            <option value="<%=(rsCategoria.Fields.Item("codTipoArticolo").Value)%>"><%=(rsCategoria.Fields.Item("tipoArticolo").Value)%></option>
                            <%
      rsCategoria.MoveNext()
    Wend
    If (rsCategoria.CursorType > 0) Then
      rsCategoria.MoveFirst
    Else
      rsCategoria.Requery
    End If
    %>
                          </select></td>
                        </tr>
                        <tr>
                          <td colspan="2" align="left" class="testo">[img]immagini/null.gif[/img]</td>
                          </tr>
                        <tr>
                          <td align="left" class="testo">Marca:</td>
                          <td align="left" class="testo"><select name="codMarca" class="testo" id="codMarca">
                            <%
    While (NOT rsMarca.EOF)
    %>
                            <option value="<%=(rsMarca.Fields.Item("codMarca").Value)%>"><%=(rsMarca.Fields.Item("marca").Value)%></option>
                            <%
      rsMarca.MoveNext()
    Wend
    If (rsMarca.CursorType > 0) Then
      rsMarca.MoveFirst
    Else
      rsMarca.Requery
    End If
    %>
                          </select></td>
                        </tr>
                        <tr>
                          <td colspan="2" align="left" class="testo">[img]immagini/null.gif[/img]</td>
                          </tr>
                        <tr>
                          <td align="left" class="testo">Colore:</td>
                          <td align="left" class="testo"><select name="codColore" class="testo" id="codColore">
                            <%
    While (NOT rsColore.EOF)
    %>
                            <option value="<%=(rsColore.Fields.Item("codColore").Value)%>"><%=(rsColore.Fields.Item("colore").Value)%></option>
                            <%
      rsColore.MoveNext()
    Wend
    If (rsColore.CursorType > 0) Then
      rsColore.MoveFirst
    Else
      rsColore.Requery
    End If
    %>
                          </select></td>
                        </tr>
                        <tr>
                          <td colspan="2" align="left" class="testo">[img]immagini/null.gif[/img]</td>
                          </tr>
                        <tr>
                          <td align="left" class="testo">Taglia:</td>
                          <td align="left" class="testo"><select name="codTaglia" class="testo" id="codTaglia">
                            <%
    While (NOT rsTaglia.EOF)
    %>
                            <option value="<%=(rsTaglia.Fields.Item("codTaglia").Value)%>"><%=(rsTaglia.Fields.Item("taglia").Value)%></option>
                            <%
      rsTaglia.MoveNext()
    Wend
    If (rsTaglia.CursorType > 0) Then
      rsTaglia.MoveFirst
    Else
      rsTaglia.Requery
    End If
    %>
                          </select></td>
                        </tr>
                        <tr>
                          <td colspan="2" align="left" class="testo">[img]immagini/null.gif[/img]</td>
                          </tr>
                        <tr>
                          <td align="left" class="testo">Punto vendita n&deg;1: </td>
                          <td align="left" class="testo"><label>
                          <input name="check1" type="checkbox" value="Negozio 1" />
                          </label></td>
                        </tr>
                        <tr>
                          <td colspan="2" align="left" class="testo">[img]immagini/null.gif[/img]</td>
                          </tr>
                        <tr>
                          <td align="left" class="testo">Punto vendita n&deg;2: </td>
                          <td align="left" class="testo"><input name="check2" type="checkbox" value="Negozio 2" /></td>
                        </tr>
                        <tr>
                          <td colspan="2" align="left" class="testo">[img]immagini/null.gif[/img]</td>
                          </tr>
                        <tr>
                          <td align="left" class="testo">Punto vendita n&deg;3: </td>
                          <td align="left" class="testo"><input name="check3" type="checkbox" value="negozio 3" /></td>
                        </tr>
                        <tr>
                          <td colspan="2" align="left" class="testo">[img]immagini/null.gif[/img]</td>
                          </tr>
                        <tr>
                          <td align="left" class="testo">Punto vendita n&deg;4: </td>
                          <td align="left" class="testo"><input name="check4" type="checkbox" value="Negozio 4" /></td>
                        </tr>
                        <tr>
                          <td colspan="2" align="left" class="testo">[img]immagini/null.gif[/img]</td>
                          </tr>
                        <tr>
                          <td align="left" class="testo">Punto vendita n&deg;5: </td>
                          <td align="left" class="testo"><input name="check5" type="checkbox" value="negozio 5" /></td>
                        </tr>
                        <tr>
                          <td colspan="2" align="left" class="testo">[img]immagini/null.gif[/img]</td>
                          </tr>
                        <tr>
                          <td align="left" class="testo">Seleziona tutti: </td>
                          <td align="left" class="testo"><input type="checkbox" onClick="checkAll(this,'check')" /></td>
                        </tr>
                        <tr>
                          <td colspan="2" align="left" class="testo">[img]immagini/null.gif[/img]</td>
                          </tr>
                        <tr>
                          <td align="left"></td>
                          <td align="left"><label>
                            <input name="Submit3" type="submit" class="testo" value="Invia" />
                          </label></td>
                        </tr>
                      </table>
                    </form>
    E questa è la query della pagina che riceve i risultati:
    codice:
    <%
    Dim rsDettagli__MMColParam
    rsDettagli__MMColParam = "1"
    If (Request.QueryString("codfornitore") <> "") Then 
      rsDettagli__MMColParam = Request.QueryString("codfornitore")
    End If
    %>
    <%
    Dim rsDettagli__MMColParam2
    rsDettagli__MMColParam2 = "1"
    If (Request.QueryString("codTipoArticolo") <> "") Then 
      rsDettagli__MMColParam2 = Request.QueryString("codTipoArticolo")
    End If
    %>
    <%
    Dim rsDettagli__MMColParam3
    rsDettagli__MMColParam3 = "1"
    If (Request.QueryString("codTaglia") <> "") Then 
      rsDettagli__MMColParam3 = Request.QueryString("codTaglia")
    End If
    %>
    <%
    Dim rsDettagli__MMColParam4
    rsDettagli__MMColParam4 = "1"
    If (Request.QueryString("codColore") <> "") Then 
      rsDettagli__MMColParam4 = Request.QueryString("codColore")
    End If
    %>
    <%
    Dim rsDettagli__MMColParam5
    rsDettagli__MMColParam5 = "1"
    If (Request.QueryString("codMarca") <> "") Then 
      rsDettagli__MMColParam5 = Request.QueryString("codMarca")
    End If
    %>
    <%
    Dim rsDettagli__MMColparam6
    rsDettagli__MMColparam6 = "1"
    If (Request.QueryString("check1") <> "") Then 
      rsDettagli__MMColparam6 = Request.QueryString("check1")
    End If
    %>
    <%
    Dim rsDettagli__MMColparam7
    rsDettagli__MMColparam7 = "1"
    If (Request.QueryString("check2")  <> "") Then 
      rsDettagli__MMColparam7 = Request.QueryString("check2") 
    End If
    %>
    <%
    Dim rsDettagli__MMColparam8
    rsDettagli__MMColparam8 = "1"
    If (Request.QueryString("check3")  <> "") Then 
      rsDettagli__MMColparam8 = Request.QueryString("check3") 
    End If
    %>
    <%
    Dim rsDettagli__MMColparam9
    rsDettagli__MMColparam9 = "1"
    If (Request.QueryString("check4")  <> "") Then 
      rsDettagli__MMColparam9 = Request.QueryString("check4") 
    End If
    %>
    <%
    Dim rsDettagli__MMColparam10
    rsDettagli__MMColparam10 = "1"
    If (Request.QueryString("check5")  <> "") Then 
      rsDettagli__MMColparam10 = Request.QueryString("check5") 
    End If
    %>
    <%
    Dim rsDettagli
    Dim rsDettagli_numRows
    
    Set rsDettagli = Server.CreateObject("ADODB.Recordset")
    rsDettagli.ActiveConnection = MM_magazzinoAbbigliamento_STRING
    rsDettagli.Source = "SELECT negozio, SUM(confPerScatola) AS totaleEntrata, SUM(confVendute) AS totaleVendute  FROM report  WHERE codfornitore = '" + Replace(rsDettagli__MMColParam, "'", "''") + "'  OR codTipoArticolo = '" + Replace(rsDettagli__MMColParam2, "'", "''") + "' OR codTaglia = '" + Replace(rsDettagli__MMColParam3, "'", "''") + "'  OR codColore = '" + Replace(rsDettagli__MMColParam4, "'", "''") + "' OR codMarca = '" + Replace(rsDettagli__MMColParam5, "'", "''") + "' AND (negozio = '" + Replace(rsDettagli__MMColparam6, "'", "''") + "' OR negozio = '" + Replace(rsDettagli__MMColparam7, "'", "''") + "' OR negozio = '" + Replace(rsDettagli__MMColparam8, "'", "''") + "' OR negozio = '" + Replace(rsDettagli__MMColparam9, "'", "''") + "' OR negozio = '" + Replace(rsDettagli__MMColparam10, "'", "''") + "') GROUP BY negozio"
    rsDettagli.CursorType = 0
    rsDettagli.CursorLocation = 2
    rsDettagli.LockType = 1
    rsDettagli.Open()
    
    rsDettagli_numRows = 0
    %>
    Luery una volta stampata è la sqguente:
    SELECT negozio, SUM(confPerScatola) AS totaleEntrata, SUM(confVendute) AS totaleVendute FROM report WHERE codfornitore = '802' OR codTipoArticolo = ' ' OR codTaglia = ' ' OR codColore = ' ' OR codMarca = ' ' AND (negozio = 'Negozio 1' OR negozio = '1' OR negozio = '1' OR negozio = '1' OR negozio = '1') GROUP BY negozio

    Il problema è che lui mi restituisce tutti i risultati con codice fornitore 802 mentre dovrebbe dare solo quelli relativi al Negozio 1

    Mi sembra una cosa semplice invece mi ci sto incartando.

    Scusate potete darmi una mano.

    Grazie.

    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  2. #2
    per come hai scritto la query, la prima OR valida tutto

  3. #3
    Si ho visto ma se inserisco l'operatore AND non mi mostra nessun risultato perchè la condizione non viene soddisfatta.

    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  4. #4
    infatti. AND e OR mica si mettono a muzzo!

    fa' in modo che sca così

    SELECT negozio, SUM(confPerScatola) AS totaleEntrata, SUM(confVendute) AS totaleVendute FROM report WHERE

    (

    codfornitore = '802' OR codTipoArticolo = ' ' OR codTaglia = ' ' OR codColore = ' ' OR codMarca = ' '

    )

    AND (negozio = 'Negozio 1' OR negozio = '1' OR negozio = '1' OR negozio = '1' OR negozio = '1') GROUP BY negozio


    guarda che ho IMMAGINATO quello che tu vuoi... sistemala alla bisogna

  5. #5
    Perfetto grassie!!!

    Mi sono scordato dell'importanza delle parentesi.

    Grazie ancora!!!

    Ciao e buona serata.

    Roberto
    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  6. #6
    Scusate ma stupidamente mi non mi sono accorto del fatto che che ho sbagliato a formulare l'interrogazione al DB.

    Io vorrei infatti che mi facesse vere tutti record corrispondenti al codice 802 e 455 di uno + più negozi. Perciò OR non va bene e devo usare AND per unire i codici. Per il negozio va bene OR.

    Ho rimodificato la query in questo modo:
    codice:
    <%
    
    Dim MMColparam6
    MMColparam6 = Request.QueryString("check1")
    
    Dim MMColparam7
    MMColparam7 = Request.QueryString("check2")
    
    Dim MMColparam8
    MMColparam8 = Request.QueryString("check3")
    
    Dim MMColparam9
    MMColparam9 = Request.QueryString("check4")
    
    Dim MMColparam10
    MMColparam10 = Request.QueryString("check5")
    %>
    <%
    Dim sql
    sql ="SELECT negozio, SUM(confPerScatola) AS totaleEntrata, SUM(confVendute) AS totaleVendute  FROM report"
    sql3 = "AND (negozio = '" & MMColparam6 & "' OR negozio = '" & MMColparam7 & "' OR negozio = '"& MMColparam8 & "' OR negozio = '" & MMColparam9 & "' OR negozio = '" & MMColparam10 &  "') GROUP BY negozio"
    
    Dim MMColParam
    MMColParam = Request.QueryString("codfornitore")
    if MMColparam <>"" then 
    sql2 = "WHERE codFornitore= '" & MMColparam & "'"
    End If
    
    Dim MMColParam2
    MMColParam2 = Request.QueryString("codTipoArticolo")
    if MMColparam2<>"" then
    if len(sql2) = 0 then sql2 = " WHERE" else sql2 = sql2 & " AND"
    sql2 = sql2 & " codTipoArticolo=" & MMColParam2
    End If
    
    Dim MMColParam3
    MMColParam3 = Request.QueryString("codTaglia")
    if MMColparam3<>"" then
    if len(sql2) = 0 then sql2 = " WHERE" else sql2 = sql2 & " AND"
    sql2 = sql2 & " codTaglia=" & MMColParam3
    End If
    
    Dim MMColParam4
    MMColParam4 = Request.QueryString("codColore")
    if MMColparam4<>"" then
    if len(sql2) = 0 then sql2 = " WHERE" else sql2 = sql2 & " AND"
    sql2 = sql2 & " codColore=" & MMColParam4
    End If
    
    Dim MMColParam5
    MMColParam5 = Request.QueryString("codMarca")
    if MMColparam5<>"" then
    if len(sql2) = 0 then sql2 = " WHERE" else sql2 = sql2 & " AND"
    sql2 = sql2 & " codMarca=" & MMColParam5
    End If
    
    sql=sql & sql2 & sql3 
    response.Write(sql)
    %>
    <%
    Dim rsDettagli
    Dim rsDettagli_numRows
    
    Set rsDettagli = Server.CreateObject("ADODB.Recordset")
    rsDettagli.ActiveConnection = MM_magazzinoAbbigliamento_STRING
    rsDettagli.Source = sql
    rsDettagli.CursorType = 0
    rsDettagli.CursorLocation = 2
    rsDettagli.LockType = 1
    rsDettagli.Open() 
    
    rsDettagli_numRows = 0
    %>
    La query a video (Riga rossa di codice) viene stampata correttamente solo che poi ho il seguente errore:
    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

    [Microsoft][ODBC Microsoft Access Driver] Syntax error in FROM clause.

    /magazzinoAbbigliamento/index_report.asp, line 389

    La riga 389 è quella evidenziata in verde.

    Io ho pensato di inserire una variabile al posto della query completa solo che mi dice che ho un' errore sulal clusola FROM.

    Questo è il risultato della query stampato:

    SELECT negozio, SUM(confPerScatola) AS totaleEntrata, SUM(confVendute) AS totaleVendute FROM reportWHERE codFornitore= '802' AND codTipoArticolo= AND codTaglia= AND codColore= AND codMarca= AND (negozio = 'Negozio 1' OR negozio = 'Negozio 2' OR negozio = '' OR negozio = '' OR negozio = '') GROUP BY negozio

    Nn capisco questo messaggio di errore. La query è corretta se non sbaglio.

    :master:
    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  7. #7
    Ho detto una cavolata, l'errore è sulla quey.

    Ora la sto ricontrollando.

    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  8. #8
    Allora ho sistemato il problema del FROM ma ora mi da il seguente errore:

    [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'codFornitore= '802' AND codTipoArticolo= AND codTaglia= AND codColore= AND codMarca= AND (negozio = 'Negozio 1' OR negozio = 'Negozio 2' OR negozio = '' OR negozio = '' OR negozio = '')'.

    Se provo a mettere i due apici sui singoli codici non va in errore ma non mi viaulizza nulla perchè prende in considerazione anche i campi che non ho usato per la ricerca.
    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  9. #9
    se NON li usi per la ricerca, perché li metti nella WHERE?

  10. #10
    Perchè comunque in query string le passo con lo lo spazio ( & n b s p
    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.