Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: SubQuery

  1. #1
    Utente di HTML.it L'avatar di tyson69
    Registrato dal
    Jan 2005
    Messaggi
    154

    SubQuery

    Ciao a tutti ho un prob con una query: devo recuperare almeno 1 record della T_Clienti, e verificare se ha fatto un ordine che è relazionato alla tabella scadenze: la query dovrebbe essere qualcosa del genere:
    codice:
    SELECT id_cliente, denominazione_cliente, nome_cliente, cognome_cliente, sconto_cliente FROM T_clienti WHERE (SELECT id_ordine, id_cliente_ordine, id_scadenza_ordine, id_scadenza, closed_scadenza FROM T_ordini, T_scadenze WHERE id_cliente_ordine="&id_cliente&"  AND closed_scadenza=0) AND id_cliente="&id_cliente
    Grazie in anticipo!

  2. #2
    oh mio dio che query....

    ma che vuol dire quella seconda query nel where???

  3. #3
    Utente di HTML.it L'avatar di tyson69
    Registrato dal
    Jan 2005
    Messaggi
    154
    Ciao, e scusa per lo spavento... ho persino sbagliato a fare copia/incolla
    codice:
    SELECT id_ordine, id_cliente_ordine, id_scadenza_ordine, id_scadenza, closed_scadenza FROM T_ordini, T_scadenze WHERE id_cliente_ordine="&id_cliente&"  AND id_scadenza_ordine=id_scadenza AND closed_scadenza=0
    allora con questa query ottengo solo di sapere se c'è almeno un nominativo...io però devo ottenere anche il nome cliente della T_clienti...
    ...x cui >seleziona il cliente > vedi se il cliente ha fatto almeno 1 ordine che nella t_scadenze abbia closed_scadenza=0...
    VVoVe:

  4. #4
    codice:
    SELECT id_ordine, id_cliente_ordine, id_scadenza_ordine, id_scadenza, closed_scadenza, (select campo_nome_cliente from tabella_clienti tc where tc.idcliente=T_ordini.id_cliente_ordine) as nomecliente FROM ....

  5. #5
    Utente di HTML.it L'avatar di tyson69
    Registrato dal
    Jan 2005
    Messaggi
    154
    ...ehm, no, io devo:
    - selezionare il cliente passandogli una variabile
    - verificare se il cliente ha fatto un ordine e se lo stesso nella T_scadenze (T_ordini.id_scadenza_ordine= T_scadenze.id_scadenza)ha T_scadenze.closed_scadenza=0

  6. #6
    Utente di HTML.it L'avatar di tyson69
    Registrato dal
    Jan 2005
    Messaggi
    154
    dovrebbe essere qualcosa tipo:
    codice:
    SELECT T_clienti.id_cliente, T_ordini.id_cliente_ordine,
     T_ordini.id_scadenza_ordine, T_scadenze.id_scadenza, T_scadenze.closed_scadenza FROM T_clienti LEFT JOIN T_ordini ON 
    T_clienti.id_cliente = T_ordini.id_cliente_ordine LEFT JOIN T_scadenze ON T_ordini 
    INNER JOIN T_scadenze.id_scadenza= T_ordini.id_scadenza_ordine 
    WHERE T_clienti.id_cliente="&id_cliente

  7. #7
    non ti seguo piu....

    non puoi estrarre il nome del cliente e se ha fatto un ordine evaso perchè se per caso ha fatto solo ordini non evasi la query ti restituisce un bel .eof

    quindi

    1) estrai il nome del cliente con una query

    2) con un altra query verifica se ha fatto ordini evasi

    altrimenti:
    codice:
    Select nomeutente from utenti where idcliente in (select idcliente from tabella_ordini where id_ordine in (select id_ordine from scadenze where closed_scadenza=0))
    forse va...

    ps: metti te gli alias ai campi

  8. #8
    Utente di HTML.it L'avatar di tyson69
    Registrato dal
    Jan 2005
    Messaggi
    154
    ... o meglio...
    codice:
    SELECT T_clienti.id_cliente, T_ordini.id_cliente_ordine, 
    T_ordini.id_scadenza_ordine FROM T_clienti LEFT JOIN T_ordini ON T_clienti.id_cliente =T_ordini.id_cliente_ordine WHERE 
    T_clienti.id_cliente="&id_cliente
    però a questo punto devo verificare se T_ordini.id_scadenza_ordine nella T_scadenze ha closed scadenza=0..

  9. #9
    abbiamo scritto la risposta insieme :

  10. #10
    Utente di HTML.it L'avatar di tyson69
    Registrato dal
    Jan 2005
    Messaggi
    154
    ...concordo con te su questi 2 punti:
    1) estrai il nome del cliente con una query

    2) con un altra query verifica se ha fatto ordini evasi;

    è che vorrei farlo con una sola query, ma non ci sono ancora riuscito!



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.