Pagina 5 di 5 primaprima ... 3 4 5
Visualizzazione dei risultati da 41 a 47 su 47

Discussione: Sintassi per query

  1. #41
    e come fai a capire (se lo dovessi fare carta e penna) quando sono di un tipo e quando di un altro?

  2. #42
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Ho scritto due query, una per le ore straordinarie ed una per lo stato giornaliero del dipendente... ma se un dipendente non ha ore di straordinario non mi estrae lo stato giornaliero...

    codice:
       strSQL = " SELECT TIPO_STRAORDINARIO, NOME_DIPENDENTE, "
       strSQL = strSQL & " SUM(ORE_STRAORDINARIO) AS strORESTRAORDINARIO "
       strSQL = strSQL & " FROM PRESENZE_PERSONALE " 
       strSQL = strSQL & " WHERE ID_DIP = " & strCODICELOCALE & " "
       strSQL = strSQL & " AND ORE_STRAORDINARIO <> 0 "
       strSQL = strSQL & " GROUP BY TIPO_STRAORDINARIO "
       strSQL = strSQL & " ORDER BY ID DESC "
       
    sql_count = " SELECT "
    
    sql_count = sql_count & " (SELECT COUNT(STATO_GIORNALIERO) "
    sql_count = sql_count & " FROM PRESENZE_PERSONALE WHERE STATO_GIORNALIERO = 'Ferie' AND ID_DIP = " & strID_DIP & ") AS strFE, "
    sql_count = sql_count & " (SELECT COUNT(STATO_GIORNALIERO) "
    sql_count = sql_count & " FROM PRESENZE_PERSONALE WHERE STATO_GIORNALIERO = 'Ritardi' AND ID_DIP = " & strCODICELOCALE & ") AS strRI, "
    sql_count = sql_count & " (SELECT COUNT(STATO_GIORNALIERO) "
    sql_count = sql_count & " FROM PRESENZE_PERSONALE WHERE STATO_GIORNALIERO = 'Malattia' AND ID_DIP = " & strCODICELOCALE & ") AS strMA, "
    sql_count = sql_count & " (SELECT COUNT(STATO_GIORNALIERO) "
    sql_count = sql_count & " FROM PRESENZE_PERSONALE WHERE STATO_GIORNALIERO = 'Permesso' AND ID_DIP = " & strCODICELOCALE & ") AS strPE, "
    sql_count = sql_count & " (SELECT COUNT(STATO_GIORNALIERO) "
    sql_count = sql_count & " FROM PRESENZE_PERSONALE WHERE STATO_GIORNALIERO = 'Assente' AND ID_DIP = " & strCODICELOCALE & ") AS strAS "
    
    sql_count = sql_count & " FROM PRESENZE_PERSONALE "
    Set objRS = objconn.execute (sql_count)
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  3. #43
    micro, NON scrivere più query in quella forma mostruosa. ma che te l'ha insegnato?

    fai UNA select semplice! con una GROUP BY STATO_GIORNALIERO

    prendi ad esempio quella che ho fatto io

    e poi studiati i fondamentali di sql http://msdn2.microsoft.com/en-us/library/aa140011(office.10).aspx



  4. #44
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Bé almeno le basi le conosco... il problema è che non riesco a far funzionare le due query indipendentemente l'una dall'altra...

    codice:
    strCODICELOCALE = request.querystring("CODICELOCALE")
    
    if strCODICELOCALE <> "" THEN
    
       strSQL = " SELECT TIPO_STRAORDINARIO, NOME_DIPENDENTE, "
       strSQL = strSQL & " SUM(ORE_STRAORDINARIO) AS strORESTRAORDINARIO "
       strSQL = strSQL & " FROM PRESENZE_PERSONALE " 
       strSQL = strSQL & " WHERE CODICE_LOCALE = " & strCODICELOCALE & " "
       strSQL = strSQL & " GROUP BY TIPO_STRAORDINARIO, NOME_DIPENDENTE "
       strSQL = strSQL & " ORDER BY ID DESC "
    
       sql_count = " SELECT NOME_DIPENDENTE, STATO_GIORNALIERO, "
       sql_count = sql_count & " COUNT(STATO_GIORNALIERO) AS strSTATOGIORNALIERO "
       sql_count = sql_count & " FROM PRESENZE_PERSONALE " 
       sql_count = sql_count & " WHERE CODICE_LOCALE = " & strCODICELOCALE & " "
       sql_count = sql_count & " GROUP BY NOME_DIPENDENTE, STATO_GIORNALIERO "
       sql_count = sql_count & " ORDER BY ID DESC "
     
    
    else
    
       strSQL = " SELECT TIPO_STRAORDINARIO, "
       strSQL = strSQL & " SUM(ORE_STRAORDINARIO) AS strORESTRAORDINARIO "
       strSQL = strSQL & " FROM PRESENZE_PERSONALE "
       strSQL = strSQL & " GROUP BY TIPO_STRAORDINARIO "
       strSQL = strSQL & " ORDER BY ID DESC "
    
       sql_count = " SELECT STATO_GIORNALIERO, "
       sql_count = sql_count & " COUNT(STATO_GIORNALIERO) AS strSTATOGIORNALIERO "
       sql_count = sql_count & " FROM PRESENZE_PERSONALE "
       sql_count = sql_count & " GROUP BY STATO_GIORNALIERO "
       sql_count = sql_count & " ORDER BY ID DESC "
       
      
    end if
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  5. #45
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Ci sono riuscito !!!!
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  6. #46
    Originariamente inviato da orcim
    Ci sono riuscito !!!!
    bravo. rendi il favore al forum, pubblica la soluzione così chi dovesse avere le tue stesse esigenze potrà trarne fonte di ispirazione.

  7. #47
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Ho seguito le tue indicazioni ed ho previsto due query:

    - la prima esegue la somma per tipologia di ore di straordinario;
    - la seconda esegue conteggia lo stato giornaliero per ciascun dipendente:

    codice:
    strCODICELOCALE = request.querystring("CODICELOCALE")
    
    if strCODICELOCALE <> "" THEN
    
       strSQL = " SELECT * , "
       strSQL = strSQL & " SUM(ORE_STRAORDINARIO) AS strORESTRAORDINARIO "
       strSQL = strSQL & " FROM PRESENZE_PERSONALE " 
       strSQL = strSQL & " WHERE " 
       strSQL = strSQL & " CODICE_LOCALE = " & strCODICELOCALE & " "
       strSQL = strSQL & " AND TIPO_STRAORDINARIO <> 'Nessuno' "
       strSQL = strSQL & " AND ID_GESTIONE_RIFERIMENTO = " & ID_GEST & " "
       strSQL = strSQL & " AND GESTIONE_RIF = " & ID_COD & " "
       strSQL = strSQL & " GROUP BY TIPO_STRAORDINARIO "
       strSQL = strSQL & " ORDER BY ID DESC "
       
       sql_count = " SELECT *, "
       sql_count = sql_count & " COUNT(STATO_GIORNALIERO) AS strSTATOGIORNALIERO "
       sql_count = sql_count & " FROM PRESENZE_PERSONALE " 
       sql_count = sql_count & " WHERE " 
       sql_count = sql_count & " CODICE_LOCALE = " & strCODICELOCALE & " "
       sql_count = sql_count & " AND ID_GESTIONE_RIFERIMENTO = " & ID_GEST & " "
       sql_count = sql_count & " AND GESTIONE_RIF = " & ID_COD & " "
       sql_count = sql_count & " GROUP BY STATO_GIORNALIERO "
       sql_count = sql_count & " ORDER BY ID DESC "
    
    else
    
       strSQL = " SELECT * , "
       strSQL = strSQL & " SUM(ORE_STRAORDINARIO) AS strORESTRAORDINARIO "
       strSQL = strSQL & " FROM PRESENZE_PERSONALE "
       strSQL = strSQL & " WHERE "
       strSQL = strSQL & " TIPO_STRAORDINARIO <> 'Nessuno' "
       strSQL = strSQL & " AND ID_GESTIONE_RIFERIMENTO = " & ID_GEST & " "
       strSQL = strSQL & " AND GESTIONE_RIF = " & ID_COD & " "
       strSQL = strSQL & " GROUP BY TIPO_STRAORDINARIO "
       strSQL = strSQL & " ORDER BY ID DESC "
       
       sql_count = " SELECT *, "
       sql_count = sql_count & " COUNT(STATO_GIORNALIERO) AS strSTATOGIORNALIERO "
       sql_count = sql_count & " FROM PRESENZE_PERSONALE "
       sql_count = sql_count & " WHERE "
       sql_count = sql_count & " ID_GESTIONE_RIFERIMENTO = " & ID_GEST & " "
       sql_count = sql_count & " AND GESTIONE_RIF = " & ID_COD & " "
       sql_count = sql_count & " GROUP BY STATO_GIORNALIERO "
       sql_count = sql_count & " ORDER BY ID DESC "
      
    end if
    
    
    'ESECUZIONE PRIMA QUERY SOMMA E TIPOLOGIA STRAORDINARIO
    Set Rs = Server.CreateObject("ADODB.Recordset")
    Rs.Open strSql, objconn
    
    ...
    
    
    'ESECUZIONE SECONDA QUERY CONTEGGIO STATO GIORNALIERO
    Set objRs = Server.CreateObject("ADODB.Recordset")
    objRs.Open sql_count, objconn
    Grazie Optime !
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

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 © 2026 vBulletin Solutions, Inc. All rights reserved.