webForumDet fria alternativet

Sammanfoga SQL

Databaser & SQL

3 svar · 436 visningar · startad av renholm

Medlem sedan apr. 20012 266 inlägg
Frågan#1

Har delar av en SQL sträng som jag inte riktigt förstår hur jag ska sätta ihop, den är uppdelad som följer:

[SQL]
Select=T2.IBLITM,T3.IMDSC1 AS DSCRIPTION, sum(T1.LIPQOH + T1.LIQTTR + T1.LIQTO1 + T1.LIQTO2)/1000 as QOH, sum(T1.LIHCOM + T1.LIPCOM)/1000 as QCOM, sum(T1.LIPQOH + T1.LIQTTR + T1.LIQTO1 + T1.LIQTO2 - T1.LIHCOM - T1.LIPCOM) /1000 as AVAILABLE,T3.IMUOM1, T4.UMCONV/10000000 AS EAPERUV
Where=(T1.LILOTS='') AND (T3.IMSRP1 = 'MIT') AND (T2.IBMCU =' SDK') AND ((T1.LIPQOH <> 0 ) OR (T1.LIPCOM <> 0) OR (T1.LIQTTR <>0) OR (T1.LIQTO1 <> 0) OR (T1.LIQTO2 <>0) OR (T1.LIHCOM <> 0 ))
OrderBy=
GroupBy=T2.IBLITM,T3.IMDSC1,T3.IMUOM1,T4.UMCONV
Having=
JoinBy=T1.LIITM= T3.IMITM AND T1.LIMCU = T2.IBMCU AND T3.IMITM = T2.IBITM AND T1.LIITM = T4.UMITM AND T3.IMUOM1 = T4.UMRUM AND T3.IMUOM3=T4.UMUM AND T1.LIMCU=T4.UMMCU

Ovanstående kommer från en .ini fil för ett program som hämtar data ur en DB2 maskin. Detta ska sammanfogas till en "vanlig" SQL sträng för att kunna körs om DTS paket på en SQL Server.

Har försökt med inner joins men får inte till det.

Medlem sedan dec. 200012 464 inlägg
#2
Select T2.IBLITM,
   T3.IMDSC1 AS DSCRIPTION, 
   sum(T1.LIPQOH + T1.LIQTTR + T1.LIQTO1 + T1.LIQTO2)/1000 as QOH, 
   sum(T1.LIHCOM + T1.LIPCOM)/1000 as QCOM, 
   sum(T1.LIPQOH + T1.LIQTTR + T1.LIQTO1 + T1.LIQTO2 - T1.LIHCOM - T1.LIPCOM) /1000 as AVAILABLE,
   T3.IMUOM1, 
   T4.UMCONV/10000000 AS EAPERUV
from t1, t2, t3, t4
Where (T1.LILOTS='') 
  AND (T3.IMSRP1 = 'MIT') 
  AND (T2.IBMCU =' SDK') 
  AND ((T1.LIPQOH <> 0 ) 
    OR (T1.LIPCOM <> 0) 
    OR (T1.LIQTTR <>0) 
    OR (T1.LIQTO1 <> 0) 
    OR (T1.LIQTO2 <>0) 
    OR (T1.LIHCOM <> 0 ))
 and T1.LIITM = T3.IMITM 
 AND T1.LIMCU = T2.IBMCU 
 AND T3.IMITM = T2.IBITM 
 AND T1.LIITM = T4.UMITM 
 AND T3.IMUOM1 = T4.UMRUM 
 AND T3.IMUOM3=T4.UMUM 
 AND T1.LIMCU=T4.UMMCU
Group By T2.IBLITM,T3.IMDSC1,T3.IMUOM1,T4.UMCONV
Medlem sedan apr. 20012 266 inlägg
#3

Tack! Hade helt glömt att man kan "joina" i WHERE. :)

Frågan fungerar nu, dock retunerar den inga rader. Vet inte heller om den ska det för tillfället, kan vara så att backuper och grejer körs på maskinen nu på natten :). Får återkomma när jag vet mer.

Medlem sedan apr. 20012 266 inlägg
#4

Löste sig nu, saknades några blanksteg på ett ställe.

AND (T2.IBMCU =' SDK')
AND (T2.IBMCU ='         SDK')
254 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)