Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,536

    [sqlServer]articoli che hanno quantità >0

    come da titolo
    sembrerebbe banale
    purtroppo non c'è un campo quantità, bensi i DBA per "agevolare tutti" hanno pensato bene che il campo quantità non è altro che la somma dei movimenti in entrata meno i movimenti in uscita

    spiego meglio:
    3 tabelle:
    -articoli (ID, descrizione)
    -Movimenti (FlagTipo,data,utente,id)
    -MovimentiRighe (idarticolo, quantità,idMovimento)

    dove in TestataMovimento il tipomovimenti decide se è CARICO o SCARICO

    ho provato con:
    codice:
    SELECT      (SELECT        SUM(MovimentiRighe.Quantita) AS Expr1
                              FROM            MovimentiRighe INNER JOIN
                                                        Movimenti ON MovimentiRighe.IDMovimento = Movimenti.ID
                              WHERE        (Movimenti.FlagTipo = 1)) -
                                 (SELECT        SUM(MovimentiRighe_1.Quantita) AS Expr1
                                   FROM            MovimentiRighe AS MovimentiRighe_1 INNER JOIN
                                                             Movimenti AS Movimenti_1 ON MovimentiRighe_1.IDMovimento = Movimenti_1.ID
                                   WHERE        (Movimenti_1.FlagTipo = 2)) as tot ,id
    FROM            Articoli
    che mi da 2 colonne, ma se cerco di chiudere il tutto con "select * from( " e mettere un filtro con tot>0
    sql server dice che la sintassi non è corretta, non riconosce tot come campo
    poi non vorrei ricopiare anche per il filtro tutto questo grosso blocco di codice che poi veramente non si capisce nulla
    esistono soluzioni piu facili?
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  2. #2
    tu devi avere entrate e uscite su due colonne diverse, o ti interessa solo il "saldo" ?
    ARTRIPE

  3. #3
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,536
    Quote Originariamente inviata da optime Visualizza il messaggio
    tu devi avere entrate e uscite su due colonne diverse, o ti interessa solo il "saldo" ?
    voglio solo gli articoli che hanno quantità >0
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  4. #4
    "VOGLIO" non esiste comunque, prova questa

    codice:
    SELECT	MR.IDArticolo AS Articolo
    	, MAX(A.Descrizione) AS Descrizione
    	, SUM((CASE WHEN M.FlagTipo = 1 THEN MR.Quantita ELSE 0 END) - (CASE WHEN M.FlagTipo = 2 THEN MR.Quantita ELSE 0 END)) AS Qty
    FROM
    	MovimentiRighe MR
    	INNER JOIN Movimenti M ON MR.IDMovimento=M.ID
    	INNER JOIN Articoli A ON MR.IDArticolo=A.ID
    GROUP BY
    	MR.IDArticolo
    HAVING
    	SUM((CASE WHEN M.FlagTipo = 1 THEN MR.Quantita ELSE 0 END) - (CASE WHEN M.FlagTipo = 2 THEN MR.Quantita ELSE 0 END)) >0
    l'ho scritto davvero a occhi chiusi e sono fuori allenamento, quindi non so se funzia.

    Facce sape', poi nel caso te la spiego
    ARTRIPE

  5. #5
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,536
    si funziona, m isto studiando la query
    molto interessante
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  6. #6
    azz, al primo colpo
    ARTRIPE

  7. #7
    poi mi dici anche se è veloce o lenta; forse una SP che sfrutta tabelle temporanee potrebbe essere ancora più veloce
    ARTRIPE

  8. #8
    comunque, avere un campo Qta nella tabella degli articoli (ovviamente aggiornata in continuazione) NON farebbe male ;-)
    ARTRIPE

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