Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118

    Problema concettuale su una query fra due tabelle (inner join?) o (select annidata?)

    Problemone, ho due tabelle:

    Tabella A (cc, data) e Tabella B (ccn, reparto)
    quindi esempio:
    Tabella A
    12 04/06/2006
    22 04/06/2006
    35 06/06/2006

    Tabella B
    12 Magazzino
    12 Archivio
    22 Vendita
    35 Magazzino
    35 Archivio

    Ora con una query prendo dalla tabella A gli ultimi tre giorni e quindi i tre record sopra. Vorrei che mi apparisse a video che qualora la pratica (ccn) fosse stata data all'archivio la riga si disegnasse rossa. Quindi dovrei fare un inner join ma in questo caso eliminerei tutti i record che non sono dell'archivio, potrei fare un left join ma anche quì dovrei dargli come criterio 'archivio'.

    Suggerimenti?

  2. #2
    non c'ho capito una mazza...però provo a dire la mia lo stesso :

    considerando questa struttura:
    codice:
    tabella A:
    
    idrichiesta - data
    12             4/5/2005
    etc etc
    
    tabella B:
    id - Nome
    12 - Magazzino
    una query potrebbe essere
    codice:
    select tabellaA.*,(select tabellab.Nome from tabellaB where tabellaB.id=tabellaA.idrichiesta) as nome_richiesta from tabellaA
    e poi al tempo di stampa:
    codice:
    if rs("nome_richiesta")="Archivio" then
    stampa rosso
    else
    normale
    end if

  3. #3
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118
    Mi si incarta con questo errore:

    La sottoquery può restituire al massimo un record.

  4. #4

  5. #5
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118
    Tabella A campi cc e dtt
    Tabella B campi num e rep

    Io prendo dalla tabella A i record degli ultimi tre giorni.

    32 04/06/2006
    12 04/06/2006
    27 06/06/2006

    Adesso dovrei vedere se questi record sono presenti nella tabella B e se sì se hanno come rep 'archivio' quindi:

    10 archivio
    10 magazzino
    32 magazzino
    27 magazzino
    27 archivio

    in questo caso vorrei che la riga del 27 fosse rossa ( dal momento che 27 è presente nella tabella b con il rep archivio, mentre 32 è presente ma con il rep solo magazzino e della 10 non mi importa perchè non è presente nella tabella A).

    Spero di essere stato chiaro.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    dovrebbe essere:
    codice:
    SELECT a.cc,a.dtt,b.rep FROM A LEFT JOIN B WHERE a.cc=b.num
    e poi
    codice:
    if rs("rep")="Archivio" then
       stampa rosso
    else
       stampa normale
    end if

  7. #7
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118
    Macchè:

    Errore di sintassi nella proposizione FROM.

    codice:
    Squeryt="SELECT cc,dtt,rep from copia LEFT JOIN cartelli WHERE copia.cc=cartelli.num and dtt>#"&b&"# order by dtt desc"

  8. #8
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118
    Ho provato una boiata del genere:

    codice:
    Squeryt="SELECT cc,dtt,rep from A right join B on A.cc=B.num where dtt>#"&b&"# order by dtt desc"
    set rs=server.createobject("adodb.recordset") 
    rs.open Squeryt,Conn
    Do until Rs.eof=True 
    reparto=rs("rep")
    If reparto = "archivio" or null then
    %>
    <table width="100%" border="1"><tr><td width="60%"><font size="1"><%=rs("cc")%></font></td><td width="40%"><font size="1"><%=rs("dtt")%></font></td></tr></table>
    <%
    end if
    rs.movenext 
    loop
    ................
    Ma non mi tira fuori nulla.............

  9. #9
    prova a togliere la data nella where

  10. #10
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118
    Come prima......

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.