Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    query of queries (COLDFUSION - SQL)

    Ho un problema,devo creare una queri che prende i dati da un'altra queri creata prima vi posto il codice..


    PRIMA QUERY

    <cfquery name="Q_ULTIMA_OPERAZIONE_OPERAI" datasource="DB" password="password" username="username" cachedwithin="#createTimeSpan( 0,0,10,0) #">
    SELECT MAX(dbo.T_DEVICE_EVENT.ISTANTE_OCCORRENZA) AS ULTIMO_ISTANTE_OCCORRENZA, dbo.T_DEVICE_EVENT.OPERATORE_1
    FROM dbo.T_DEVICE_EVENT
    WHERE (dbo.T_DEVICE_EVENT.TIPO_OPERAZIONE = '100' Or dbo.T_DEVICE_EVENT.TIPO_OPERAZIONE = '101')
    GROUP BY dbo.T_DEVICE_EVENT.OPERATORE_1</cfquery>

    SECONDA QUERY CHE PRENDE DATI DALLA PRIMA CHE IL RISULTATO DOVREBBE ESSERE "Q_OPERATORI_LOGATI"

    <cfquery name="Q_OPERATORI_LOGATI" datasource="DB">
    SELECT dbo.T_OPERAIO.NOME + ' ' + dbo.T_OPERAIO.COGNOME AS OPERATORE, dbo.T_DEVICE_EVENT.ISTANTE_OCCORRENZA, dbo.T_DEVICE_EVENT.OPERATORE_1
    FROM dbo.T_DEVICE_EVENT INNER JOIN Q_ULTIMA_OPERAZIONE_OPERAI ON (dbo.T_DEVICE_EVENT.OPERATORE_1 = Q_ULTIMA_OPERAZIONE_OPERAI.OPERATORE_1) AND (dbo.T_DEVICE_EVENT.ISTANTE_OCCORRENZA = Q_ULTIMA_OPERAZIONE_OPERAI.ULTIMO_ISTANTE_OCCORREN ZA) LEFT JOIN dbo.T_DEVICE_EVENT.OPERATORE_1 = dbo.T_OPERAIO.MATRICOLA
    WHERE ((dbo.T_OPERAIO.NOME + ' ' + dbo.T_OPERAIO.COGNOME) <> '') AND (dbo.T_DEVICE_EVENT.TIPO_OPERAZIONE = '100') </cfquery>

    se qualcuno mi puo' dare un consiglio...
    aspetto notizie

  2. #2
    scusami, non riesco bene a capire che dati deve prendere la seconda query dalla prima (sono un po' assonnato stasera)
    comunque hai provato con una sub select?

    qualcosa tipo:

    SELECT tabella.campo FROM tabella WHERE tabella.campoChiave = (SELECT MAX(..) .. FROM .. WHERE ...)

    cambia l'uguale con IN se la subselect restituisce più di un valore

    xxx

  3. #3

    a furia di battere la testa mi sto piantando come uno struzzo sul muro...

    Fin qua ci ho provato...
    mi dice che odb.T_DEVICE_EVENT non lo trova come tabella ne' come alias nella query

    uff

    ho gia' filtrato quasi tutto
    mi manca solo di rifiltrare il risultato della prima query con un'altra query ma non so come fare a utilizzare il risultato della prima query per fare la seconda

    <cfquery name="OPERAI_IN" datasource="mssqlserver">
    SELECT [NOME] + ' ' + [COGNOME] AS OPERATORE, odb.T_DEVICE_EVENT.ISTANTE_OCCORRENZA, odb.T_DEVICE_EVENT.OPERATORE_1
    FROM T_DEVICE_EVENT LEFT JOIN T_OPERAIO ON T_DEVICE_EVENT.OPERATORE_1=T_OPERAIO.MATRICOLA
    WHERE (
    SELECT MAX(odb.T_DEVICE_EVENT.ISTANTE_OCCORRENZA) AS ULTIMO_ISTANTE_OCCORRENZA, odb.T_DEVICE_EVENT.OPERATORE_1
    FROM T_DEVICE_EVENT
    WHERE odb.T_DEVICE_EVENT.TIPO_OPERAZIONE = '101' OR odb.T_DEVICE_EVENT.TIPO_OPERAZIONE = '101'
    GROUP BY odb.T_DEVICE_EVENT.OPERATORE_1 )
    = odb.T_DEVICE_EVENT.OPERATORE_1 AND odb.T_DEVICE_EVENT.OPERATORE_1 = '100'
    ORDER BY odb.T_DEVICE_EVENT.ISTANTE_OCCORRENZA</cfquery>

    qualcuna sa come fare la query di una query ????

    con asp etc etc ce la faccio...


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.