Visualizzazione dei risultati da 1 a 9 su 9

Discussione: query complicata!

  1. #1

    query complicata!

    dunque...ciao

    io ho un db access. cè la tabella t_ditte e la tabella t_tipologie.
    la relazione è molti a molti percui ho bisogno di una tabella di appoggio che è t_dittatipo.
    ---------
    t_ditte
    dt_cod = 126
    dt_cod = 127
    -------------
    t_tipologie
    tp_cod = 1
    tp_cod = 2
    tp_cod = 3
    ------------
    t_dittatipo
    dt_cod_ditta = 126 - dt_cod_tipo = 1
    dt_cod_ditta = 126 - dt_cod_tipo = 2
    dt_cod_ditta = 126 - dt_cod_tipo = 3
    dt_cod_ditta = 127 - dt_cod_tipo = 2


    ho questo problema: come fare ad estrarre tutte le ditte con tipologia 2 and 3?
    ho provato con una semplice query e non viene niente, con union è come mettere or percui vengono entrambe le ditte....

    come si risolve?!
    io voglio vedere sullo shermo la ditta 126 in quanto ha sia la tipologia 2 che la 3! accipicchia!

    mi potete aiutare?!
    ciao!
    lisa

  2. #2

    Prova questa

    SELECT *
    FROM t_ditte
    WHERE t_ditte.dt_cod In (select dt_cod_ditta from t_dittatipo where dt_cod_tipo=2) And t_ditte.dt_cod In (select dt_cod_ditta from t_dittatipo where dt_cod_tipo=1)

  3. #3

    mi dispiace!

    ho provato amico, grazie!
    ma non funziona!
    come posso fare?!

    se hai altre idee ....ti ascolto volentieri!!

  4. #4
    mi sono sbagliata amico!!

    sei un grande:FUNZIONA!!!

    ero io che sbagliavo!
    scusa e grazie ancora!!!!!

    lisa

  5. #5
    L'unico difetto di quel tipo di query è la velocità

  6. #6
    immaginavo!
    cmq è un problema relativo perche lavoro in una intranet con un collegamento piuttosto veloce!

    e poi... se il capo(testone) decide che si fa cosi.....che poi non si lamenti!!

    grazie ancora cmq.

    ciao
    lisa

  7. #7
    Prova questa

    SELECT t_ditte.dt_cod FROM t_dittatipo INNER JOIN t_ditte ON t_dittatipo.dt_cod_ditta = t_ditte.dt_cod LEFT OUTER JOIN
    t_tipologie ON t_dittatipo.dt_cod_tipo = t_tipologie.tp_cod
    WHERE (t_dittatipo.dt_cod_ditta = '3') OR (t_dittatipo.dt_cod_ditta = '4')
    GROUP BY t_ditte.dt_cod

    in questa non ci sono clausole IN

    Ciao.

  8. #8
    Si, comunque ti estrae anche una ditta che ha solo tipologia 3, non solo le ditte che hanno contemporaneamente tipologia 3 e 4.

    bisogna per forza fare 2 sottoquery (che possono anche essere salvate a parte).

  9. #9
    infatti!

    cmq grazie ho risolto con la fantastica query di andrea.
    il difetto è la lentezza e il fatto che la query è dinamica e ho impazzito un pochino ma adesso è tuuto funzionante!

    grazie a tutti !

    lisa

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.