questa è una semplice query per ricavare dei dati da un db sql servercodice:SELECT rdr1.slpcode, rdr1.ItemCode, rdr1.Quantity, SUM(DLN1.Quantity) AS sommamad, rdr1.Quantity - SUM(DLN1.Quantity) AS saldo, rdr1.Currency, rdr1.Price, rdr1.U_PORTOIM, rdr1.U_DTCONSDA, rdr1.U_DTCONSA, rdr1.U_TOLLERANZA, rdr1.WhsCode, ordr.DocDate, ordr.DocNum, ordr.slpcode, ordr.cardcode, ordr.TrnspCode, oitm.ItemName, OCRD.CardName, oshp.TrnspName, [@portoimbarco].[Name], OSLP.SlpName FROM ((((((((rdr1 LEFT JOIN ordr ON rdr1.DOCENTRY = ordr.DOCENTRY) LEFT JOIN DLN1 ON DLN1.BaseEntry = rdr1.DOCENTRY AND DLN1.BaseLine = rdr1.LINENUM) LEFT JOIN ODLN ON ODLN.DocEntry = DLN1.DocEntry) LEFT JOIN OITM ON rdr1.ITEMCODE = OITM.ITEMCODE) LEFT JOIN ocrd ON ordr.CARDCODE = OCRD.CARDCODE) LEFT JOIN OSHP ON ordr.TrnspCode = OSHP.TrnspCode) LEFT JOIN [@PORTOIMBARCO] ON rdr1.U_PORTOIM = [@portoimbarco].Code) LEFT JOIN OSLP on ORDR.SlpCode = OSLP.SlpCode) WHERE ordr.DocDate BETWEEN '2007/4/2' AND '2007/4/2' AND ordr.CardCode = 'C0003' GROUP BY rdr1.slpcode, rdr1.Quantity, rdr1.ItemCode, rdr1.Currency, rdr1.Price, rdr1.U_PORTOIM, rdr1.U_DTCONSDA, rdr1.U_DTCONSA, rdr1.U_TOLLERANZA, rdr1.WhsCode, ordr.DocDate, ordr.DocNum, ordr.slpcode, ordr.cardcode , ordr.TrnspCode, oitm.ItemName, OCRD.CardName, oshp.TrnspName, [@portoimbarco].[Name], OSLP.SlpName ORDER BY ordr.DocNum
il mio scopo è quello di non rendere esclusivo un determinato filtro
quando lego queste due tabelle, devo filtrare per un campo ODLN.DocDate <= '2007-04-23' ma questo filtro non deve essere pregiudicante per il resto dei dati ma dovrà agire solo sulle istruzioni sotto citatecodice:LEFT JOIN ODLN ON ODLN.DocEntry = DLN1.DocEntry)
cioè dovra variare solo le somme in visione del filtro applicato per datacodice:SUM(DLN1.Quantity) AS sommamad, rdr1.Quantity - SUM(DLN1.Quantity) AS saldo,
Esempio:
la query senza filtro mi da 7 record con delle sommatorie
la query con il filtro mi dara sempre 7 record ma con sommatorie eseuguite per data
qualcuno riesce ad illuminarmi??

Rispondi quotando