sqldevrequiretektips
Programmer
Hello Everyone..
I have ask this question to many SQL Developer but nobody had given me better answer...
On my form i have button save/upload History when user clicks on it, I want to save the data from WLCust_Denormalized to WLCustAct_Emp table...
How would i save the data from WLDenormalized table to tblWLEmpType_WLDay
For more detail see structure and data...
For example....
WLDenormalized table structure and sample data..
Field Names Records
CustLifeNo, 330374
WeekNo, - 1
MON_Act_M,-- M
MON_Act_O -- NULL
MON_Act_D -- D
MON_Emp_C -- C
MON_Emp_F -- NULL
MON_Emp_P -- NULL
TUE_Act_M -- NULL
TUE_Act_O -- NULL
TUE_Act_D -- NULL
TUE_Emp_C -- NULL
TUE_Emp_F -- NULL
TUE_Emp_P -- NULL
WED_Act_M -- M
WED_Act_O -- O
WED_Act_D -- NULL
WED_Emp_C -- C
WED_Emp_F -- NULL
WED_Emp_P -- NULL
THU_Act_M -- NULL
THU_Act_O -- NULL
THU_Act_D -- NULL
THU_Emp_C -- NULL
THU_Emp_F -- NULL
THU_Emp_P -- NULL
FRI_Act_M -- M
FRI_Act_O -- NULL
FRI_Act_D -- NULL
FRI_Emp_C -- C
FRI_Emp_F -- NULL
FRI_Emp_P -- NULL
SAT_Act_M -- NULL
SAT_Act_O -- NULL
SAT_Act_D -- NULL
SAT_Emp_C -- NULL
SAT_Emp_F -- NULL
SAT_Emp_P -- NULL
SUN_Act_M -- NULL
SUN_Act_O -- NULL
SUN_Act_D -- NULL
SUN_Emp_C -- NULL
SUN_Emp_F -- NULL
SUN_Emp_P -- NULL
Now above data record I want to save it to tblWLEmpType_WLDay In following way...
tblWLEmpType_WLDay structure
CustLifeNo WLActCatId WLDayId WeekNo WLEmpTypeId
330374 FRI 1
330374 FRI 1 C
330374 M FRI 1
330374 M FRI 1
330374 M FRI 1 C
330374 FRI 1
330374 FRI 1
330374 FRI 1 C
330374 FRI 1
330374 D MON 1
330374 M MON 1
330374 M MON 1
330374 D MON 1 C
330374 MON 1
330374 MON 1 C
330374 MON 1
330374 M MON 1 C
330374 D MON 1
330374 SAT 1
330374 SAT 1
330374 SAT 1
330374 SAT 1
330374 SAT 1
330374 SAT 1
330374 SAT 1
330374 SAT 1
330374 SAT 1
330374 SUN 1
330374 SUN 1
330374 SUN 1
330374 SUN 1
330374 SUN 1
330374 SUN 1
330374 SUN 1
330374 SUN 1
330374 SUN 1
330374 THU 1
330374 THU 1
330374 THU 1
330374 THU 1
330374 THU 1
330374 THU 1
330374 THU 1
330374 THU 1
330374 THU 1
330374 TUE 1
330374 TUE 1
330374 TUE 1
330374 TUE 1
330374 TUE 1
330374 TUE 1
330374 TUE 1
330374 TUE 1
330374 TUE 1
330374 M WED 1
330374 O WED 1
330374 O WED 1 C
330374 O WED 1
330374 WED 1
330374 WED 1 C
330374 WED 1
330374 M WED 1
330374 M WED 1 C
So what's the best sql to achive this task...
To Achive this I have allredy write sql Query but it's taking so long...
Here is the query in command save click event
Private Sub Command2_Click()
Dim x As Integer
Dim str1 As String
Dim str2 As String
Dim str3 As String
Dim str4 As String
Dim d As String
Dim rsSQL As New ADODB.Recordset
rs.Open "SELECT distinct * FROM WLMod_Denormalized", cnn, adOpenKeyset, adLockReadOnly
rs.MoveFirst
x = rs.RecordCount
'Pick Up First Record From Denormalized table and update WLEmpType_WLDay
For x = 1 To x
If rs.Fields(8).Value = "C" Then ' Pick up the value from MON_EMP_C field and Save it to tblWLEmpType_WLDay
str1 = " UPDATE tblWLEmpType_WLDay INNER JOIN WLMod_Denormalized ON (tblWLEmpType_WLDay.WeekNo = WLMod_Denormalized.WeekNo)" & _
"AND (WLMod_Denormalized.CustLifeNo = tblWLEmpType_WLDay.CustLifeNo)" & _
" SET tblWLEmpType_WLDay.WLEmpTypeId = 'C'" & _
" WHERE [tblWLEmpType_WLDay]![WLDayId]='MON' " & _
" AND tblWLEmpType_WLDay.CustLifeNo = WLMod_Denormalized.CustLifeNo AND tblWLEmpType_WLDay.WeekNo=WLMod_Denormalized.WeekNo"
Set rsSQL = cnn.Execute(str1)
End If
If rs.Fields(9).Value = "F" Then ' Pick up the value from MON_EMP_F field and Save it to tblWLEmpType_WLDay
str1 = " UPDATE tblWLEmpType_WLDay INNER JOIN WLMod_Denormalized ON (tblWLEmpType_WLDay.WeekNo = WLMod_Denormalized.WeekNo)" & _
"AND (WLMod_Denormalized.CustLifeNo = tblWLEmpType_WLDay.CustLifeNo)" & _
" SET tblWLEmpType_WLDay.WLEmpTypeId = 'F'" & _
" WHERE [tblWLEmpType_WLDay]![WLDayId]='MON' " & _
" AND tblWLEmpType_WLDay.CustLifeNo = WLMod_Denormalized.CustLifeNo AND tblWLEmpType_WLDay.WeekNo=WLMod_Denormalized.WeekNo"
Set rsSQL = cnn.Execute(str1)
End If
If rs.Fields(10).Value = "P" Then ' Pick up the value from MON_EMP_P field and Save it to tblWLEmpType_WLDay
str1 = " UPDATE tblWLEmpType_WLDay INNER JOIN WLMod_Denormalized ON (tblWLEmpType_WLDay.WeekNo = WLMod_Denormalized.WeekNo)" & _
"AND (WLMod_Denormalized.CustLifeNo = tblWLEmpType_WLDay.CustLifeNo)" & _
" SET tblWLEmpType_WLDay.WLEmpTypeId = 'P'" & _
" WHERE [tblWLEmpType_WLDay]![WLDayId]='MON' " & _
" AND tblWLEmpType_WLDay.CustLifeNo = WLMod_Denormalized.CustLifeNo AND tblWLEmpType_WLDay.WeekNo=WLMod_Denormalized.WeekNo"
Set rsSQL = cnn.Execute(str1)
'**************
'continue same logic for each column....
'*******
End If
rs.MoveNext
Next x
End Sub
Please help me anyone...
Thanks
SQLDev...
I have ask this question to many SQL Developer but nobody had given me better answer...
On my form i have button save/upload History when user clicks on it, I want to save the data from WLCust_Denormalized to WLCustAct_Emp table...
How would i save the data from WLDenormalized table to tblWLEmpType_WLDay
For more detail see structure and data...
For example....
WLDenormalized table structure and sample data..
Field Names Records
CustLifeNo, 330374
WeekNo, - 1
MON_Act_M,-- M
MON_Act_O -- NULL
MON_Act_D -- D
MON_Emp_C -- C
MON_Emp_F -- NULL
MON_Emp_P -- NULL
TUE_Act_M -- NULL
TUE_Act_O -- NULL
TUE_Act_D -- NULL
TUE_Emp_C -- NULL
TUE_Emp_F -- NULL
TUE_Emp_P -- NULL
WED_Act_M -- M
WED_Act_O -- O
WED_Act_D -- NULL
WED_Emp_C -- C
WED_Emp_F -- NULL
WED_Emp_P -- NULL
THU_Act_M -- NULL
THU_Act_O -- NULL
THU_Act_D -- NULL
THU_Emp_C -- NULL
THU_Emp_F -- NULL
THU_Emp_P -- NULL
FRI_Act_M -- M
FRI_Act_O -- NULL
FRI_Act_D -- NULL
FRI_Emp_C -- C
FRI_Emp_F -- NULL
FRI_Emp_P -- NULL
SAT_Act_M -- NULL
SAT_Act_O -- NULL
SAT_Act_D -- NULL
SAT_Emp_C -- NULL
SAT_Emp_F -- NULL
SAT_Emp_P -- NULL
SUN_Act_M -- NULL
SUN_Act_O -- NULL
SUN_Act_D -- NULL
SUN_Emp_C -- NULL
SUN_Emp_F -- NULL
SUN_Emp_P -- NULL
Now above data record I want to save it to tblWLEmpType_WLDay In following way...
tblWLEmpType_WLDay structure
CustLifeNo WLActCatId WLDayId WeekNo WLEmpTypeId
330374 FRI 1
330374 FRI 1 C
330374 M FRI 1
330374 M FRI 1
330374 M FRI 1 C
330374 FRI 1
330374 FRI 1
330374 FRI 1 C
330374 FRI 1
330374 D MON 1
330374 M MON 1
330374 M MON 1
330374 D MON 1 C
330374 MON 1
330374 MON 1 C
330374 MON 1
330374 M MON 1 C
330374 D MON 1
330374 SAT 1
330374 SAT 1
330374 SAT 1
330374 SAT 1
330374 SAT 1
330374 SAT 1
330374 SAT 1
330374 SAT 1
330374 SAT 1
330374 SUN 1
330374 SUN 1
330374 SUN 1
330374 SUN 1
330374 SUN 1
330374 SUN 1
330374 SUN 1
330374 SUN 1
330374 SUN 1
330374 THU 1
330374 THU 1
330374 THU 1
330374 THU 1
330374 THU 1
330374 THU 1
330374 THU 1
330374 THU 1
330374 THU 1
330374 TUE 1
330374 TUE 1
330374 TUE 1
330374 TUE 1
330374 TUE 1
330374 TUE 1
330374 TUE 1
330374 TUE 1
330374 TUE 1
330374 M WED 1
330374 O WED 1
330374 O WED 1 C
330374 O WED 1
330374 WED 1
330374 WED 1 C
330374 WED 1
330374 M WED 1
330374 M WED 1 C
So what's the best sql to achive this task...
To Achive this I have allredy write sql Query but it's taking so long...
Here is the query in command save click event
Private Sub Command2_Click()
Dim x As Integer
Dim str1 As String
Dim str2 As String
Dim str3 As String
Dim str4 As String
Dim d As String
Dim rsSQL As New ADODB.Recordset
rs.Open "SELECT distinct * FROM WLMod_Denormalized", cnn, adOpenKeyset, adLockReadOnly
rs.MoveFirst
x = rs.RecordCount
'Pick Up First Record From Denormalized table and update WLEmpType_WLDay
For x = 1 To x
If rs.Fields(8).Value = "C" Then ' Pick up the value from MON_EMP_C field and Save it to tblWLEmpType_WLDay
str1 = " UPDATE tblWLEmpType_WLDay INNER JOIN WLMod_Denormalized ON (tblWLEmpType_WLDay.WeekNo = WLMod_Denormalized.WeekNo)" & _
"AND (WLMod_Denormalized.CustLifeNo = tblWLEmpType_WLDay.CustLifeNo)" & _
" SET tblWLEmpType_WLDay.WLEmpTypeId = 'C'" & _
" WHERE [tblWLEmpType_WLDay]![WLDayId]='MON' " & _
" AND tblWLEmpType_WLDay.CustLifeNo = WLMod_Denormalized.CustLifeNo AND tblWLEmpType_WLDay.WeekNo=WLMod_Denormalized.WeekNo"
Set rsSQL = cnn.Execute(str1)
End If
If rs.Fields(9).Value = "F" Then ' Pick up the value from MON_EMP_F field and Save it to tblWLEmpType_WLDay
str1 = " UPDATE tblWLEmpType_WLDay INNER JOIN WLMod_Denormalized ON (tblWLEmpType_WLDay.WeekNo = WLMod_Denormalized.WeekNo)" & _
"AND (WLMod_Denormalized.CustLifeNo = tblWLEmpType_WLDay.CustLifeNo)" & _
" SET tblWLEmpType_WLDay.WLEmpTypeId = 'F'" & _
" WHERE [tblWLEmpType_WLDay]![WLDayId]='MON' " & _
" AND tblWLEmpType_WLDay.CustLifeNo = WLMod_Denormalized.CustLifeNo AND tblWLEmpType_WLDay.WeekNo=WLMod_Denormalized.WeekNo"
Set rsSQL = cnn.Execute(str1)
End If
If rs.Fields(10).Value = "P" Then ' Pick up the value from MON_EMP_P field and Save it to tblWLEmpType_WLDay
str1 = " UPDATE tblWLEmpType_WLDay INNER JOIN WLMod_Denormalized ON (tblWLEmpType_WLDay.WeekNo = WLMod_Denormalized.WeekNo)" & _
"AND (WLMod_Denormalized.CustLifeNo = tblWLEmpType_WLDay.CustLifeNo)" & _
" SET tblWLEmpType_WLDay.WLEmpTypeId = 'P'" & _
" WHERE [tblWLEmpType_WLDay]![WLDayId]='MON' " & _
" AND tblWLEmpType_WLDay.CustLifeNo = WLMod_Denormalized.CustLifeNo AND tblWLEmpType_WLDay.WeekNo=WLMod_Denormalized.WeekNo"
Set rsSQL = cnn.Execute(str1)
'**************
'continue same logic for each column....
'*******
End If
rs.MoveNext
Next x
End Sub
Please help me anyone...
Thanks
SQLDev...