Condividi tramite

Query Nidificata

Anonimo
2017-07-13T16:00:09+00:00

Buongiorno a tutti,

ho questo problema. 

Ho una tabella con due colonne: OSPITI  e CAMERA

Devo fare un conteggio sulle camere inserite in questa tabella. Esiste la possibilità che una camera venga occupata da due ospiti, quindi nella tabella viene scritta due volte. Il sistema deve contarla una volta sola. Esempio:

ROSSI MARCO        32

BIANCHI DARIO      32

Il risultato deve essere 1

Io ho provato cosi:

Set db = CurrentDb

    Set rsCamere = db.OpenRecordset("SELECT Count(*) AS ncamere FROM (SELECT DISTINCT camera FROM QCamere")

    Me.txtCamereOccupate = rsCamere![ncamere]

    rsCamere.Close

in questo modo mi da questo errore: errore di runtime 3131, Erorre di sintassi nella clausola FROM

Riuscite ad aiutarmi?

Grazie mille

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

9 risposte

Ordina per: Più utili
  1. Anonimo
    2017-07-15T07:33:37+00:00

    Prova con


    Set rsCamere = db.OpenRecordset("SELECT drv.camera, Count(drv.*) AS ncamere FROM (select distinct camera from QCamere)  AS drv GROUP BY drv.camera")


    David

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-07-15T00:35:23+00:00

    ciao Zamlix,

    ci mostri la query qcamere? contiene un parametro che il dbengine non risolve?

    Mostra  che forse capiamo meglio...

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-07-14T13:06:17+00:00

    DImenticavo, la tabella (query) si chiama QCamere e la colonna CAMERA.

    Grazie

    Marco

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2017-07-14T13:05:30+00:00

    Ciao Sandro,

    grazie mille per la risposta, ho adattato con i miei nomi in questo modo:

    Set db = CurrentDb

        Set rsCamere = db.OpenRecordset("SELECT drv.QCamere.camera, Count(*) AS ncamere FROM (select distinct QCamere.camera from QCamere)  AS drv GROUP BY drv.QCamere.camera")

        Me.txtCamereOccupate = rsCamere![ncamere]

        rsCamere.Close

    mi da questo errore:  errore di runtime 3061 Parametri insufficienti. Previsto 1

    La tabella delle camere in realtà è una query con una sola colonna (le camere).

    Mi potresti aiutare?

    Grazie mille

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2017-07-13T16:22:19+00:00

    ciao Zamlix,

    se ho capito, prova con questo predicato sql :

    SELECT drv.id_duplica, Count(*) AS conta

    FROM (select distinct t_duplica.id_duplica from t_duplica)  AS drv

    GROUP BY drv.id_duplica;

    adattandolo ai nomi propri del tuo scenario.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento