Author |
Topic |
jonasalbert20
Constraint Violating Yak Guru
300 Posts |
Posted - 2006-12-09 : 00:56:49
|
Good day... I need some help regarding this query...I had this sample datas from tblStockItems...SELECT tblStockItems.* FROM ( SELECT 1 as sID, 'AA' as sItemName UNION ALL SELECT 2 as sID, 'BB' as sItemName UNION ALL SELECT 3 as sID, 'CC' as sItemName UNION ALL SELECT 4 as sID, 'DD' as sItemName UNION ALL SELECT 5 as sID, 'EE' as sItemName UNION ALL SELECT 6 as sID, 'FF' as sItemName UNION ALL SELECT 7 as sID, 'GG' as sItemName UNION ALL SELECT 8 as sID, 'HH' as sItemName ) as tblStockItems and another one for tblStockMonitoring...SELECT tblStockMonitoring.*FROM ( SELECT 1 as sID, 'Contractor-01' as Contractor, '2006/12/01' as sFrom, '2006/12/05' as sTo UNION ALL SELECT 3 as sID, 'Contractor-AA' as Contractor, '2006/12/02' as sFrom, '2006/12/09' as sTo UNION ALL SELECT 3 as sID, 'Contractor-BB' as Contractor, '2006/12/11' as sFrom, '2006/12/15' as sTo ) as tblStockMonitoring Result is a new monitoring that would look like this...SELECT tblNewMonitoring.*FROM ( SELECT 1 as sID, 'AA' as sItemName, '2006/12/01' as MonitoringDate, 'Contractor-01' as Contractor UNION ALL SELECT 1 as sID, 'AA' as sItemName, '2006/12/02' as MonitoringDate, 'Contractor-01' as Contractor UNION ALL SELECT 1 as sID, 'AA' as sItemName, '2006/12/03' as MonitoringDate, 'Contractor-01' as Contractor UNION ALL SELECT 1 as sID, 'AA' as sItemName, '2006/12/04' as MonitoringDate, 'Contractor-01' as Contractor UNION ALL SELECT 1 as sID, 'AA' as sItemName, '2006/12/05' as MonitoringDate, 'Contractor-01' as Contractor UNION ALL SELECT 3 as sID, 'CC' as sItemName, '2006/12/02' as MonitoringDate, 'Contractor-AA' as Contractor UNION ALL SELECT 3 as sID, 'CC' as sItemName, '2006/12/03' as MonitoringDate, 'Contractor-AA' as Contractor UNION ALL SELECT 3 as sID, 'CC' as sItemName, '2006/12/04' as MonitoringDate, 'Contractor-AA' as Contractor UNION ALL SELECT 3 as sID, 'CC' as sItemName, '2006/12/05' as MonitoringDate, 'Contractor-AA' as Contractor UNION ALL SELECT 3 as sID, 'CC' as sItemName, '2006/12/06' as MonitoringDate, 'Contractor-AA' as Contractor UNION ALL SELECT 3 as sID, 'CC' as sItemName, '2006/12/07' as MonitoringDate, 'Contractor-AA' as Contractor UNION ALL SELECT 3 as sID, 'CC' as sItemName, '2006/12/08' as MonitoringDate, 'Contractor-AA' as Contractor UNION ALL SELECT 3 as sID, 'CC' as sItemName, '2006/12/09' as MonitoringDate, 'Contractor-AA' as Contractor UNION ALL SELECT 3 as sID, 'CC' as sItemName, '2006/12/11' as MonitoringDate, 'Contractor-BB' as Contractor UNION ALL SELECT 3 as sID, 'CC' as sItemName, '2006/12/12' as MonitoringDate, 'Contractor-BB' as Contractor UNION ALL SELECT 3 as sID, 'CC' as sItemName, '2006/12/13' as MonitoringDate, 'Contractor-BB' as Contractor UNION ALL SELECT 3 as sID, 'CC' as sItemName, '2006/12/14' as MonitoringDate, 'Contractor-BB' as Contractor UNION ALL SELECT 3 as sID, 'CC' as sItemName, '2006/12/15' as MonitoringDate, 'Contractor-BB' as Contractor ) as tblNewMonitoring Any help would be much appreciated. Thanks!Want Philippines to become 1st World COuntry? Go for World War 3... |
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2006-12-09 : 06:32:59
|
[code]-- prepare test datadeclare @a table (id int, itemname varchar(2))insert @aselect 1, 'aa' union allselect 2, 'bb' union allselect 3, 'cc' union allselect 4, 'dd' union allselect 5, 'ee' union allselect 6, 'ff' union allselect 7, 'gg' union allselect 8, 'hh'declare @b table (id int, contractor varchar(13), [from] datetime, [to] datetime) insert @bselect 1, 'contractor-01', '2006/12/01', '2006/12/05' union allselect 3, 'contractor-aa', '2006/12/02', '2006/12/09' union allselect 3, 'contractor-bb', '2006/12/11', '2006/12/15'-- do the workSELECT b.ID, a.ItemName, DATEADD(day, q.Number, b.[From]) MonitoringDate, b.ContractorFROM @b bINNER JOIN @a a ON a.ID = b.IDINNER JOIN ( SELECT Number FROM master..spt_values WHERE Name IS NULL ) q ON q.Number <= DATEDIFF(day, b.[From], b.[To])[/code]Peter LarssonHelsingborg, Sweden |
 |
|
jonasalbert20
Constraint Violating Yak Guru
300 Posts |
Posted - 2006-12-10 : 19:41:06
|
tnx for the reply peso...here's my little improvement thru your code. Because I am preparing at the same time the MySQL counterpart for this statement.SELECT b.sID ,a.sItemName ,DATEADD(day, q.dayz, b.sFrom) MonitoringDate ,b.ContractorFROM ( SELECT 1 as sID, 'Contractor-01' as Contractor, '2006/12/01' as sFrom, '2006/12/05' as sTo UNION ALL SELECT 3 as sID, 'Contractor-AA' as Contractor, '2006/12/02' as sFrom, '2006/12/09' as sTo UNION ALL SELECT 3 as sID, 'Contractor-BB' as Contractor, '2006/12/11' as sFrom, '2006/12/15' as sTo ) as bINNER JOIN ( SELECT 1 as sID, 'AA' as sItemName UNION ALL SELECT 2 as sID, 'BB' as sItemName UNION ALL SELECT 3 as sID, 'CC' as sItemName UNION ALL SELECT 4 as sID, 'DD' as sItemName UNION ALL SELECT 5 as sID, 'EE' as sItemName UNION ALL SELECT 6 as sID, 'FF' as sItemName UNION ALL SELECT 7 as sID, 'GG' as sItemName UNION ALL SELECT 8 as sID, 'HH' as sItemName ) as a ON a.sID = b.sIDINNER JOIN ( select (i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9 + i10 + i11) as dayz from (select 0 as i1 union select 1) as i1 left join (select 0 as i2 union select 2) as i2 on 1=1 left join (select 0 as i3 union select 4) as i3 on 1=1 left join (select 0 as i4 union select 8) as i4 on 1=1 left join (select 0 as i5 union select 16) as i5 on 1=1 left join (select 0 as i6 union select 32) as i6 on 1=1 left join (select 0 as i7 union select 64) as i7 on 1=1 left join (select 0 as i8 union select 128) as i8 on 1=1 left join (select 0 as i9 union select 256) as i9 on 1=1 left join (select 0 as i10 union select 512) as i10 on 1=1 left join (select 0 as i11 union select 1024) as i11 on 1=1 ) as q ON q.dayz <= DATEDIFF(day, b.sFrom, b.[sTo])ORDER BY a.sID thanks once again.Want Philippines to become 1st World COuntry? Go for World War 3... |
 |
|
|
|
|