Tema: Re: Dar karta T-SQL select'as
Autorius: Jornada Del Muerto
Data: 2011-08-10 17:10:24
Na tai kame problema, jei iraso lentoj nera tai nera... jei tau reikia matyti kazkokia informacija kuri yra kitoje lentoje tai ja isvedi ir tiek. as cia sakyciau nelabai aplamai reikia 1 lentos, bent tiksliai nesuprantu ka bndai padaryti.

"Jornada Del Muerto" <Jornada@Lythum.lt> wrote in message news:j1u0h5$sqj$1@trimpas.omnitel.net...
> tai imt kaip baze reikia LK ir jungt left join L prie jos o tada tu irasu kur nebus L lentoje laukai bus Null ir kiekvienoj vietoj dek IsNull(laukas, reiksme_null_atveju_pvz_0) ir viskas...
> 
> "Rimokas" <rimasu@ut.lt> wrote in message news:j1t6ji$na6$1@trimpas.omnitel.net...
>>     Aciu uz patarima . Isbandziau ...
>> 
>>> Tada jai ner kazkokio iraso likuc lentoje visi is tos lentos traukiami 
>>> laukai bus NULL tai jei toliau darysii agregacija (tipo sum, count, avg ir 
>>> t.t.. ) su jos laukais tai pradzioj statai funkcija IsNull(likuc.laukas, 
>>> 0).
>> 
>>   Beda ta , kad paprastai L lentelej nera tokiu irasu , kuriu yra LK . Ir 
>> butent ju nematau . Ir dar beda ta , kad ta "L" judejimo lentele yra kaip ir 
>> pagrindine , likuciu lentele jungiama prie jos .
>> 
>>  Stai pilnas selectas :
>> 
>>      SELECT
>>      DBO.INVENTTrans.ITEMID,
>>      dbo.INVENTTABLE.ITEMNAME,
>>      dbo.INVENTTABLE.ALNINVENTGROUP1,
>>      DBO.INVENTTrans.DATEPHYSICAL,
>> 
>>      SUM ( IsNull( dbo.UTINVENTREMAINMONTH.INVENTREMAIN, 0 ) ) AS LQTY,
>>      SUM ( IsNull( dbo.UTINVENTREMAINMONTH.COSTAMOUNT, 0 ) ) AS LSUM,
>> 
>>      SUM ( CASE WHEN DBO.INVENTTrans.DIRECTION = 1 and 
>> DBO.INVENTTrans.DIRECTION <> NULL then DBO.INVENTTrans.QTY else 0 END ) AS 
>> PQTY,
>>      SUM ( CASE WHEN DBO.INVENTTrans.DIRECTION = 1 and 
>> DBO.INVENTTrans.DIRECTION <> NULL then DBO.INVENTTrans.COSTAMOUNTPOSTED else 
>> 0 END ) AS PSUM,
>>      SUM ( CASE WHEN DBO.INVENTTrans.DIRECTION = 2 and 
>> DBO.INVENTTrans.DIRECTION <> NULL then DBO.INVENTTrans.QTY else 0 END ) AS 
>> IQTY,
>>      SUM ( CASE WHEN DBO.INVENTTrans.DIRECTION = 2 and 
>> DBO.INVENTTrans.DIRECTION <> NULL then DBO.INVENTTrans.COSTAMOUNTPOSTED else 
>> 0 END ) AS ISUM,
>> 
>>      DBO.INVENTTrans.INVENTDIMID,
>>      DBO.INVENTDIM.INVENTLOCATIONID,
>>      DBO.INVENTDIM.CONFIGID,
>>      DBO.INVENTDIM.INVENTBATCHID,
>>      DBO.INVENTDIM.INVENTSERIALId
>> 
>>      INTO dbo.INVENTTRANS_AV
>>      FROM dbo.INVENTTrans
>> 
>>      JOIN dbo.INVENTTABLE WITH (INDEX(itemidx))ON 
>> dbo.INVENTTRANS.ITEMID=dbo.inventtable.itemid
>>      JOIN DBO.INVENTDIM WITH (INDEX(INVENTDIMIDX)) ON 
>> dbo.INVENTTrans.INVENTDIMID=DBO.INVENTDIM.INVENTDIMID
>> 
>>      LEFT JOIN dbo.UTINVENTREMAINMONTH ON
>>        DBO.INVENTTrans.INVENTDIMID = dbo.UTINVENTREMAINMONTH.INVENTDIMID 
>> and
>>        DBO.INVENTTrans.ITEMID = dbo.UTINVENTREMAINMONTH.ITEMID and
>>        dbo.UTINVENTREMAINMONTH.INVREMAINDATE >= '2011.07.01' and
>>        dbo.UTINVENTREMAINMONTH.INVREMAINDATE <= '2011.07.31'
>> 
>>      Pagrindine problema , kaip suprantu , cia ... Nes join'as daromas tarp 
>> "L" ir "LK" .  O "L" neturi tokiu irasu kaip "LK"
>> 
>>      WHERE
>>      DBO.INVENTTrans.datephysical >='2011.07.01' and
>>      DBO.INVENTTrans.datephysical <='2011.07.31' and
>>      dbo.INVENTDIM.INVENTLOCATIONID = 'its'
>> 
>>      GROUP BY
>>      DBO.INVENTTrans.ITEMID,
>>      DBO.INVENTTABLE.ITEMNAME,
>>      dbo.inventtable.ALNINVENTGROUP1,
>>      DBO.INVENTTrans.DATEPHYSICAL,
>>      DBO.INVENTTrans.INVENTDIMID,
>>      DBO.INVENTDIM.INVENTLOCATIONID,
>>      dbo.INVENTDIM.CONFIGID,
>>      DBO.INVENTDIM.INVENTBATCHID,
>>      DBO.INVENTDIM.INVENTSERIALID
>> 
>>  Cia where su datom ir 'its' skyrium laikinai , isbandymui , kad veiktu ... 
>> :-)
>> 
>>> P.S. Tiesa nepakenciu uzklausu su keliom lentom ir be aliasu tai 
>>> sualiasinau ;) L - lenta, LK - likuc, tiesiog skaitomumas uzklausos mazeja 
>>> kada dar visas lentos name prie kiekvieno lauko eina.
>> 
>>  Pilnai suprantu ... :-)) Tik cia toks MS SQL Management Studio yra , tai 
>> su juo bandau kazka isgaut . Rasosi su pilna sintakse neblogai , tik spek 
>> nukilnot ... :-))
>> 
>>  Sirdingas dekui uz pagalba ...
>> 
>>