Subversion Repositories DevTools

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
29 jtweddle 1
/* Bom Compare */
2
SELECT 
3
       pkg.PKG_ID,
4
       pv.PV_ID AS PROD_ID,
5
	   qry.OS_ID,		
6
	   pkg.PKG_NAME AS PROD_NAME,
7
	   qry.NODE_ICON,
8
	   qry.PROD_LOCATION,	   
9
	   pv.PKG_VERSION AS PROD_VERSION,
10
	   qry.OLD_PKG_VERSION,
11
	   qry.pv_id AS OLD_PROD_ID,
12
	   ( CASE 
13
	     WHEN qry.CHANGE_TYPE = 'A' THEN
14
	   		'LIMG_ADDED'
15
		 WHEN qry.CHANGE_TYPE = 'U' THEN
16
			'LIMG_UPDATED'
17
		 ELSE
18
		 	'LIMG_REMOVED'
19
		 END ) AS DIFF_ICON			 
20
  FROM (		   
21
		/* ADDED PRODUCTS ONLY */
22
		SELECT DECODE( oldbom.PROD_ID,
23
					   NULL, 'A', 'U' ) AS CHANGE_TYPE, 
24
			   newbom.PROD_ID, newbom.PROD_LOCATION, oldbom.OLD_PKG_VERSION, 
25
			   newbom.NEW_PKG_VERSION, newbom.OS_ID, newbom.NODE_ICON, oldbom.pv_id
26
		  FROM (
27
		  		SELECT osc.PROD_ID,
28
					   nn.NODE_NAME ||' / '|| os.OS_NAME ||' / ' AS PROD_LOCATION,
29
					   pv.PKG_ID,
30
					   NVL( pv.V_EXT, '|LINK_A_NULL|' ) AS V_EXT,
31
					   NULL AS OLD_PKG_VERSION,
32
					   pv.PKG_VERSION AS NEW_PKG_VERSION,
33
					   osc.OS_ID,
34
					   nt.NODE_ICON
35
				  FROM OS_CONTENTS osc,
36
				  	   OPERATING_SYSTEMS os,
37
					   NETWORK_NODES nn,
38
					   NODE_TYPES nt,
39
					   BOM_CONTENTS bc,
40
					   PACKAGE_VERSIONS pv
41
				 WHERE osc.OS_ID = os.OS_ID
42
				   AND os.NODE_ID = nn.NODE_ID
43
				   AND bc.NODE_ID = nn.NODE_ID
44
				   AND osc.PROD_ID = pv.PV_ID
45
				   AND nt.NODE_TYPE_ID = nn.NODE_TYPE_ID
46
				   AND pv.IS_PATCH IS NULL
47
				   AND bc.BOM_ID = :BOM_ID	
48
		  	   ) newbom,
49
			   (
50
			   	SELECT osc.PROD_ID,
51
					   nn.NODE_NAME ||' / '|| os.OS_NAME ||' / ' AS PROD_LOCATION,
52
					   pv.PKG_ID,
53
					   NVL( pv.V_EXT, '|LINK_A_NULL|' ) AS V_EXT,
54
					   pv.PKG_VERSION AS OLD_PKG_VERSION,
55
					   NULL AS NEW_PKG_VERSION,
56
					   pv.PV_ID,
57
					   osc.OS_ID,
58
					   nt.NODE_ICON
59
				  FROM OS_CONTENTS osc,
60
				  	   OPERATING_SYSTEMS os,
61
					   NETWORK_NODES nn,
62
					   NODE_TYPES nt,
63
					   BOM_CONTENTS bc,
64
					   PACKAGE_VERSIONS pv
65
				 WHERE osc.OS_ID = os.OS_ID
66
				   AND os.NODE_ID = nn.NODE_ID
67
				   AND bc.NODE_ID = nn.NODE_ID
68
				   AND nt.NODE_TYPE_ID = nn.NODE_TYPE_ID
69
				   AND osc.PROD_ID = pv.PV_ID
70
				   AND pv.IS_PATCH IS NULL
71
				   AND bc.BOM_ID = :COMPARE_BOM_ID	
72
			   ) oldbom
73
		 WHERE newbom.PROD_LOCATION = oldbom.PROD_LOCATION (+) 
74
		   --AND newbom.PROD_ID = oldbom.PROD_ID (+)
75
		   AND newbom.PKG_ID  = oldbom.PKG_ID (+)
76
		   AND newbom.V_EXT  = oldbom.V_EXT (+) 
77
		   AND ( oldbom.PROD_ID != newbom.PROD_ID  OR oldbom.PROD_ID IS NULL )
78
		   AND newbom.PROD_ID NOT IN 
79
		   (
80
		   	   SELECT osc.PROD_ID
81
			   FROM OS_CONTENTS osc,
82
			  	    OPERATING_SYSTEMS os,
83
					NETWORK_NODES nn,
84
					NODE_TYPES nt,
85
					BOM_CONTENTS bc,
86
					PACKAGE_VERSIONS pv
87
			  WHERE osc.OS_ID = os.OS_ID
88
				AND os.NODE_ID = nn.NODE_ID
89
				AND bc.NODE_ID = nn.NODE_ID
90
				AND nt.NODE_TYPE_ID = nn.NODE_TYPE_ID
91
				AND osc.PROD_ID = pv.PV_ID
92
				AND pv.IS_PATCH IS NULL
93
				AND bc.BOM_ID = :COMPARE_BOM_ID	
94
		  )	   
95
 
96
		/*UNION
97
 
98
		 REMOVED PRODUCTS ONLY
99
		SELECT 'R' AS CHANGE_TYPE, oldbom.PROD_ID, oldbom.PROD_LOCATION,
100
		oldbom.OLD_PKG_VERSION, 
101
		newbom.NEW_PKG_VERSION, newbom.OS_ID, newbom.NODE_ICON, oldbom.pv_id
102
		  FROM (
103
		  		SELECT osc.PROD_ID,
104
					   nn.NODE_NAME ||' / '|| os.OS_NAME ||' / ' AS PROD_LOCATION,
105
					   pv.PKG_ID,
106
					   NVL( pv.V_EXT, '|LINK_A_NULL|' ) AS V_EXT,
107
					   NULL AS OLD_PKG_VERSION,
108
					   pv.PKG_VERSION AS NEW_PKG_VERSION,
109
					   osc.OS_ID,
110
					   nt.NODE_ICON
111
				  FROM OS_CONTENTS osc,
112
				  	   OPERATING_SYSTEMS os,
113
					   NETWORK_NODES nn,
114
					   NODE_TYPES nt,
115
					   BOM_CONTENTS bc,
116
					   PACKAGE_VERSIONS pv
117
				 WHERE osc.OS_ID = os.OS_ID
118
				   AND os.NODE_ID = nn.NODE_ID
119
				   AND bc.NODE_ID = nn.NODE_ID
120
				   AND nt.NODE_TYPE_ID = nn.NODE_TYPE_ID
121
				   AND osc.PROD_ID = pv.PV_ID
122
				   AND pv.IS_PATCH IS NULL
123
				   AND bc.BOM_ID = :BOM_ID	
124
		  	   ) newbom,
125
			   (
126
			   	SELECT osc.PROD_ID,
127
					   nn.NODE_NAME ||' / '|| os.OS_NAME ||' / ' AS PROD_LOCATION,
128
					   pv.PKG_ID,
129
					   NVL( pv.V_EXT, '|LINK_A_NULL|' ) AS V_EXT,
130
					   pv.PKG_VERSION AS OLD_PKG_VERSION,
131
					   NULL AS NEW_PKG_VERSION,
132
					   pv.pv_id,
133
					   osc.OS_ID,
134
					   nt.NODE_ICON
135
				  FROM OS_CONTENTS osc,
136
				  	   OPERATING_SYSTEMS os,
137
					   NETWORK_NODES nn,
138
					   NODE_TYPES nt,
139
					   BOM_CONTENTS bc,
140
					   PACKAGE_VERSIONS pv
141
				 WHERE osc.OS_ID = os.OS_ID
142
				   AND os.NODE_ID = nn.NODE_ID
143
				   AND bc.NODE_ID = nn.NODE_ID
144
				   AND nt.NODE_TYPE_ID = nn.NODE_TYPE_ID
145
				   AND osc.PROD_ID = pv.PV_ID
146
				   AND pv.IS_PATCH IS NULL
147
				   AND bc.BOM_ID = :COMPARE_BOM_ID	
148
			   ) oldbom
149
		 WHERE newbom.PROD_LOCATION (+) = oldbom.PROD_LOCATION 
150
		   --AND newbom.PROD_ID (+) = oldbom.PROD_ID
151
		   AND newbom.PKG_ID (+) = oldbom.PKG_ID
152
		   AND newbom.V_EXT (+) = oldbom.V_EXT   
153
		   AND newbom.PROD_LOCATION IS NULL */
154
       ) qry,
155
	   PACKAGE_VERSIONS pv,
156
	   PACKAGES pkg,
157
	   PRODUCT_DETAILS pd  
158
 WHERE qry.PROD_ID = pv.PV_ID
159
   AND pv.PKG_ID = pkg.PKG_ID
160
   AND pd.PROD_ID (+) = qry.PROD_ID
161
 ORDER BY UPPER(pkg.PKG_NAME)