Visualizzazione dei risultati da 1 a 8 su 8

Discussione: query

  1. #1

    query

    Qualcuno sa dirmi perchè, se lancio questa query, va tutto ok e mi restituisce i valori corretti:
    codice:
    SELECT
        `idContratto` AS `_idContratto`,
        YEAR(`DataContratto`) AS `_AnnoContratto`,
        (SELECT count(`idServizio`) FROM `servizi` WHERE `idContratto` = `_idContratto` AND `idVariazione` IS NULL AND `TipoServizio` IN ('AOC', 'AOF')) AS `_NumeroRighe`
    FROM
        `contratti`
    ORDER BY
        `idContratto`
    Mentre se, aggiungo un case, e modifico la query come segue:
    codice:
    SELECT
        `idContratto` AS `_idContratto`,
        YEAR(`DataContratto`) AS `_AnnoContratto`,
        (SELECT count(`idServizio`) FROM `servizi` WHERE `idContratto` = `_idContratto` AND `idVariazione` IS NULL AND `TipoServizio` IN ('AOC', 'AOF')) AS `_NumeroRighe`,
        CASE WHEN `_NumeroRighe` = 0 THEN 0 ELSE 1 END AS `_Test`
    FROM
        `contratti`
    ORDER BY
        `idContratto`
    mi restituisce l'errore Unknown column '_NumeroRighe' in 'field list'?

    Grazie

  2. #2

    Re: query

    Originariamente inviato da Vale1976
    Qualcuno sa dirmi perchè, se lancio questa query, va tutto ok e mi restituisce i valori corretti:
    .......
    mi restituisce l'errore Unknown column '_NumeroRighe' in 'field list'?
    Perche' stai usando un alias di campo nella condizione where. L'alias di campo viene risolto dopo il where. Quindi nel where puo' esistere l'alias della tabella che viene risolta prima ma non il nome alias di campo perche' non esiste ancora.

    Tra l'altro non mi pare proprio si possa "assegnare" un alias di condizione nell'esecuzione del where come fai tu.

    AND `TipoServizio` IN ('AOC', 'AOF')) AS `_NumeroRighe`

    non ha proprio senso come SQL. IN() e' una OR multipla, che se ne fa di un alias?

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    quindi come posso risolvere?
    conoscere il risultato di quella query mi serve per molti CASE che dovrei fare poi...

  4. #4
    Originariamente inviato da Vale1976
    quindi come posso risolvere?
    conoscere il risultato di quella query mi serve per molti CASE che dovrei fare poi...
    Non vedo proprio il senso della tua query. Forse ho sbagliato nel valutarla anche perche' non mi va di andare avanti e indietro nello script messo tutto su una linea. Non hai un return sulla tua tastiera?

    Codice PHP:
    SELECT
        
    `idContratto` AS `_idContratto`,
        
    YEAR(`DataContratto`) AS `_AnnoContratto`,
        (
    SELECT count(`idServizio`) 
             
    FROM `servizi
             
    WHERE `idContratto` = `_idContratto
             AND `
    idVariazioneIS NULL 
             
    AND `TipoServizioIN ('AOC''AOF')) AS `_NumeroRighe`,
        CASE 
    WHEN `_NumeroRighe` = 0 THEN 0 ELSE 1 END AS `_Test`
    FROM
        
    `contratti`
    ORDER BY
        
    `idContratto
    ecco, infatti non era un alias nel where ma la cosa cambia di poco. cerchi di utilizzare un campo che non esiste proprio. _NumeroRighe viene cercato nella tabella contratti mentre l'alias _NumeroRighe esistera' nella tabella temporanea che si crea mysql per "imbastire" l'output richiesto. La stessa cosa vale per gli altri alias ovviamente.

    Torno a bomba. Non ho idea su cosa dovrebbe fare questo codice SQL.

    Magari arriva Nicola e ti fa vedere i sorci che miagolano

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da piero.mac
    Magari arriva Nicola e ti fa vedere i sorci che miagolano


    Anche io non ho capito il senso della query.

    @Vale1976
    Prova a postare un dump delle tabelle popolate con qualche record e il risultato atteso.

  6. #6
    Piero...non capisco proprio il tono della tua risposta. Un forum non dovrebbe essere uno spazio dove ci si dovrebbe aiutare?!?!

    E' evidente che in questa sezione non è così.

    Cambierò posto.

    Grazie

    P.S. Quando ho postato lo script non era tutto su una riga

  7. #7
    Originariamente inviato da Vale1976
    Piero...non capisco proprio il tono della tua risposta. Un forum non dovrebbe essere uno spazio dove ci si dovrebbe aiutare?!?!

    E' evidente che in questa sezione non è così.

    Cambierò posto.

    Grazie

    P.S. Quando ho postato lo script non era tutto su una riga
    Come vuoi.

    Non mi pare di aver detto nulla di sconveniente. L'ultima battuta era per Nicola che si arrabatta sempre per trovare le soluzioni piu' inusitate.

    Hai fatto una domanda, ti ho dato una risposta. Hai replicato chiedendo una soluzione, ti ho risposto che non l'ho perche' non si capisce la domanda ed ho lanciato una palla a Nicola.

    that's all..... Poi interpreta come vuoi, per me fa lo stesso.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Originariamente inviato da Vale1976
    Piero...non capisco proprio il tono della tua risposta. Un forum non dovrebbe essere uno spazio dove ci si dovrebbe aiutare?!?!

    E' evidente che in questa sezione non è così.

    Cambierò posto.

    Grazie

    P.S. Quando ho postato lo script non era tutto su una riga
    E' anche un posto in cui c'è un regolamento, platealmente disatteso dalla tua discussione (sia nella mancata indicazione del database, che nella genericità del titolo)

    Chiudo

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.