Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,811

    problema con una select

    salve a tutti

    devo fare una select un po' difficile:
    ho 2 tabelle sconti e articoli

    codice:
    sconti		articoli
    ---------	---------
    id_articolo	id_articolo
    dal		nome	
    al
    nella tabella sconti sono riportati gli articoli in promozione e dal e al riguarda l'intervallo ditempo della promozione, capirete quindi che ci possono essere record duplicati in sconti in quanto un articolo puo' avere
    2 intervalli di tempo di promozione o +

    io devo selezionare tutto da articoli e portarmi dietro da sconti solo l'articolo che è in promozione oggi
    (ovvio che se c'è un articolo in sconti non devo selezionarlo da articoli o verrebbe duplicato )

    come posso fare?

    grazie

  2. #2
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781
    così dovrebbe andare ...

    codice:
    SELECT DISTINCT articoli.ID_Articollo, articoli.nome
    FROM articoli 
    INNER JOIN sconti ON articoli.ID_Articollo = sconti.ID_articolo
    GROUP BY articoli.ID_Articollo, articoli.nome, sconti.dal, sconti.al
    HAVING (((sconti.dal)<Now()) AND ((sconti.al)>Now()));
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nè quando nè da dove,
    t'amo direttamente senza problemi nè orgoglio:
    così ti amo perchè non so amare altrimenti

  3. #3
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,811
    uhm no cosi mi restituisce solo i record
    della tabella sconti -->non duplicati

    cmq grazie

  4. #4
    Membro Junior
    Registrato dal
    Oct 2002
    Messaggi
    23
    code:-----------------------------------------------------------------

    sconti articoli
    --------- ---------
    id_articolo id_articolo
    dal nome
    al


    nella tabella sconti sono riportati gli articoli in promozione e dal e al riguarda l'intervallo ditempo della promozione, capirete quindi che ci possono essere record duplicati in sconti in quanto un articolo puo' avere
    2 intervalli di tempo di promozione o +

    io devo selezionare tutto da articoli e portarmi dietro da sconti solo l'articolo che è in promozione oggi
    (ovvio che se c'è un articolo in sconti non devo selezionarlo da articoli o verrebbe duplicato )

    select * from articoli left join sconti on articoli.id_articolo=sconti.id_articoli where now() between sconti.dal and sconti.al

    questa query ti rende tutti gli articoli che oggi sono in promozione senza duplicati

    fammi sapere
    Giostra

  5. #5
    Membro Junior
    Registrato dal
    Oct 2002
    Messaggi
    23
    per mettere tutto quanto insieme fai così

    select articoli.*,'T' as promozione from articoli left join sconti on articoli.id=sconti.id where now() between sconti.dal and sconti.al union select articoli.*,'F' as promozione from articoli left join sconti on articoli.id=sconti.id where now() not between sconti.dal and sconti.al

    così sommi gli articoli in promozione e gli articoli non in promozione e dai alla costante promozione la classificazione ordierna dell'articolo (promozione 'T'=True,promozione 'F'=False)

    Ciao
    Giostra

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