Cursor, Conditional Split Task, Nested Joins In SSIS
Hello
Can anybody help me out in
1) implementing cursors in SSIS. I want to process each row at a time from a dataset. I was trying to use Foreachloop container but in vain. Can you please answer in detail.
my few other questions are:
1) Can i do nested inner join in SSIS. If yes, how? ( I have three table i need to join Tab1 to table 2 and get join the table 3 to get the respective data)
2) I have a resultsets. I want to split the data according to data in a col.
Say for instance:
Col1 Col2
A 1
A 2
B 3
C 4
C 5
i want to split the data according A, B and C . i.e., if Col1= A then do this, if Col1= B then do this..etc. How can i do this using conditional split task in SSIS
View Complete Forum Thread with Replies
Related Forum Messages:
Conditional Split Task
Hi All I am trying to do a simple thing using Conditional Split Task. But I get this error everytime. [Conditional Split [462]] Error: The expression "ColName1 == "AWM"" on "output "Case 1" (506)" evaluated to NULL, but the "component "Conditional Split" (462)" requires a Boolean results. Modify the error row disposition on the output to treat this result as False (Ignore Failure) or to redirect this row to the error output (Redirect Row). The expression results must be Boolean for a Conditional Split. A NULL expression result is an error. What I wanted to do is. Split the result result set accoring tro data in Colunm "ColName1". and if the data is AWM then pull that row. Currently I have NO row for ColName1 that has AWM in it. But still if it didn't find any then all the row must go to default. Also, when I give a valid name instead of AWM it works. Please let me know where I am wrong!!!!
View Replies !
CONDITIONAL SPLIT TASK
How can I do this in SSIS using conditional split task. If i cant do this using Conditional Split task then what wud b the best alternative I have a table Col1 Col2 Col3 ABC A1 123 XYZ B1 456 ASD C1 789 Now I wanna use conditional split in which I want to give condition as case1-> if Col1 = "ABC", case2 -> if Col1 ='XYZ', Case3 -> if Col1 ='ASD' . i.e. depending upon the data in the Col1 it should split. i tried this but its giving me error saying PARSING THE EXPRESSION FAILED. Help me out please...
View Replies !
How To Detect CRLF On Conditional Split Task ?
Dear all, I have to import data from flat file and I need to filter the data because there is always a Carriage Return Line Feed at end of the file. Currently I'm using Conditional Split task but I didn't know how to validate the CRLF character so I can separate it from valid data. How to detect those CRLF using Conditional Split or do I have to use another task ? Thanks in advance, Hery Susanto WR
View Replies !
How To Write Condition In The Conditional Split Control In SSIS
HI i need to write the Condition for Insert and Update Reccord depending upon the Prod_ID. How to write the Follwing condtion in the Condition Split? pls Anyone give me the Solution? " if Prod_ID Exist then UPDATE Records if Prod_ID Not EXIST then INSERT Records " how to write the above conditon in the Condional Split? Thanks & Regards, Jeyakumar.M chennai
View Replies !
SSIS - Conditional Split, Date Compare Problem!! Please Help
Right the answer is probably simple but the Internet and books and everything has been no joy to me whatsoever. I want to split my data stream based on the date. So I want to use a conditional split object to do this. I entered the following as my case date_created > (DT_DBTIMESTAMP)"01/10/2000" When I move off the line it stays black so appears to be okay, yet when I run my package it says it is not a boolean result and fails. Can anyone please tell me what I am doing wrong. Also I cannot filter in the source call due to the sheer amount of work being done on the data before the split. Thanks in advance for any help
View Replies !
Moving Files (split From An Existing Thread-SSIS Equivalent To DTS Transform Data Task Properties)
Hi JayH (or anyone). Another week...a new set of problems. I obviously need to learn .net syntax, but because of project deadlines in converting from DTS to SSIS it is hard for me to stop and do that. So, if someone could help me some easy syntax, I would really appreciate it. In DTS, there was a VBScript that copied a set of flat files from one directory to an archive directory after modifying the file name. In SSIS, the directory and archive directory will be specified in the config file. So, I need a .net script that retrieves a file, renames it and copies it to a different directory. Linda Here is the old VBScript Code: Public Sub Main() Option Explicit Function Main() Dim MovementDataDir Dim MovementArchiveDataDir Dim MovementDataFile Dim MovementArchiveDataFile Dim FileNameRoot Dim FileNameExtension, DecimalLocation Dim CurMonth, CurDay Dim FileApplicationDate Dim fso ' File System Object Dim folder Dim FileCollection Dim MovementFile '====================================================================== 'Create text strings of today's date to be appended to the archived file. FileApplicationDate = Now CurMonth = Month(FileApplicationDate) CurDay = Day(FileApplicationDate) If Len(CurMonth) = 1 Then CurMonth = "0" & CurMonth End If If Len(CurDay) = 1 Then CurDay = "0" & CurDay End If FileApplicationDate = CurMonth & CurDay & Year(FileApplicationDate) '===================================================================== ' Set the movement data directory from the global variable. MovementDataDir = DTSGlobalVariables("gsMovementDataDir").Value MovementArchiveDataDir = DTSGlobalVariables("gsMovementDataArchiveDir").Value fso = CreateObject("Scripting.FileSystemObject") folder = fso.GetFolder(MovementDataDir) FileCollection = folder.Files ' Loop through all files in the data directory. For Each MovementFile In FileCollection ' Get the full path name of the current data file. MovementDataFile = MovementDataDir & "" & MovementFile.Name ' Get the full path name of the archive data file. MovementArchiveDataFile = MovementArchiveDataDir & "" & MovementFile.Name DecimalLocation = InStr(1, MovementArchiveDataFile, ".") FileNameExtension = Mid(MovementArchiveDataFile, DecimalLocation, Len(MovementArchiveDataFile) - DecimalLocation + 1) FileNameRoot = Mid(MovementArchiveDataFile, 1, DecimalLocation - 1) MovementArchiveDataFile = FileNameRoot & "_" & FileApplicationDate & FileNameExtension If (fso.FileExists(MovementDataFile)) Then fso.CopyFile(MovementDataFile, MovementArchiveDataFile) ' If the archive file was coppied, then delete the old copy. If (fso.FileExists(MovementArchiveDataFile)) Then fso.DeleteFile(MovementDataFile) End If End If Next fso = Nothing folder = Nothing FileCollection = Nothing Main = DTSTaskExecResult_Success End Function
View Replies !
Conditional Split
Hi, In my Excel file I have the columns Col1, Col2. I want to send those records to Sqlserver table only if the Col1 and Col2 is not null. For this I am using the Conditional Split expression like this: (!ISNULL([Col1])) && (!ISNULL([Col2])). And sending this result to Sqlserver table. But I am not getting any records into the table. But the records col1 and col2 not null exist in Excel file. Is there any thing wrong in my expression? Thanks in advance
View Replies !
Conditional Split
I want to use conditional split on a column that has either a 0 or 1 in order to proceed with the workflow on my conditional split command i have ([colnam])==1 but the transformation still grabs all the data in the table whether the condition is 1 or 0. What could I be doing wrong?
View Replies !
Conditional Split
I have a oledb source and destination in a data flow task.. I would like to put the records where customer_key is null to an error table and rest of records to a destination table ( customers) using conditional split task.. how can i do this?
View Replies !
Conditional Split
Hello Group Can somebody guide me on the prefered standards of doing this I have a Colunm in a table having both NULLS and some data Ex: Table 1 Col1 Col2 -------------------------- 1 MSDN 2 Forum 3 NULL 4 NULL 5 Condition 6 Split 7 NULL I want to move the data from this tabel to two different table depending upon the value in Col2 Table2 Col1 Col2 -------------------------- 1 MSDN 2 Forum 5 Condition 6 Split Table 3 Col1 Col2 -------------------------- 3 NULL 4 NULL 7 NULL For doing this I used a simple Conditional Split Task after table 1 First Approach Output Name; Null Data Condition: ISNULL(Col2) I routed the output Null Data to Table3 and the default to Table2. Strangely I see some data in Table3 which is not NULL. That is Table 3 is having a data which is not equal to null in Col2. I have no clue why will it do that. Second approach Output Name: Data, Condition: !(ISNULL(Col2)) I routed the output: Data to Table2 and the default to Table3. Strangely I see some data in Table3 which is not NULL. That is Table 3 is having a data which is not equal to null in Col2.
View Replies !
Conditional Split
I am using a conditional split to evaluate the condition below. It should only send records to my SQL Server database if the PatientZip matches one of the eight below and the PatientCity is not Wichita Falls (you wouldn't believe how bad this is mispelled sometimes). I checked the output table and it has all records for the zipcodes below both matching and non-matching the cityname of Wichita Falls. The table should not have entries for records with the cityname of Wichita Falls. Do I have the code correct or could I have missed something? LTRIM(PatientCity) != "Wichita Falls" && (PatientZip == "76301" || PatientZip == "76302" || PatientZip == "76305" || PatientZip == "76306" || PatientZip == "76307" || PatientZip == "76308" || PatientZip == "76309" || PatientZip == "76310")
View Replies !
Conditional Split On Date ?
Hi, I have a DT_DATE column. I'd like to achieve a conditional split to ignore all records for which the date is below a specific hardcoded date (eg: 2007-03-01). I'm having a hard time trying to express this using the conditional split transform. What is the correct syntax to express a DT_DATE literal ? eg: [date] < (DT_DATE) "2007-03-01" regards Thibaut
View Replies !
Conditional Split Problem
I have been transfering data from text file to sql databases. I have a conditional split where i check to if the address has changed for a particular person.If yes i direct to update else i direct to default output which means no change. when i connect error output of conditional split to a database or union all couple of rows are directed to error output.But i dont understand the reason.How would i be able to know why they r directed to error. Please let me know.
View Replies !
Conditional Split Problem
I have a dataflow where i transfer data from textfile to oledb destination I have a conditional split in between and check if incoming fields are empty. in the conditional split i have ISNULL(column1)|| ISNULL(column2) || ISNULL(column3)|| ISNULL(column4) ||ISNULL(5) || column1 == " " || column2 == ""||column3 == " " || column4== " "||column5==" " this is what i have in my conditional split to check if they are blank. it dosent show them as blank at all.. what am i doing wrong??????
View Replies !
Conditional Split With Dependence?
I have setup a SSIS package that takes a flat file fixed width input, and stores it to two SQL server tables in the same database. The flat file contains two types of records, lets call them Type1 and Type2. The two types of records are formatted differently, and the first character determines what type the record is. I used a conditional split to send record type1 down one path, and type2 down the other. On each of those I use a derived column task to build all the fields and then store to the table with the OLE destination. I put any errors that occur (like truncation) into an error table by setting the "redirected row" feature vs "Fail Component". This all works well and I have no issues. The dilema is as follows. Type1 is essentially a parent record and the Type2 record is a child. There is a shared primary key / foreign key relationship field. I want errors when processing type1 to cause the associated type2 to also be redirected to the error table vs being inserted. If anyone has suggestions on how this could be done, reference articles, etc... please let me know. Thanks.
View Replies !
Conditional Split Question
I have a package which has a conditional task which directs rows to its respective OLEDB command. The records are sorted from the source system in chronological order. The problem I am experiencing is that some of the operations do not seem to be occurring in the same order. An example of this would be someone inserts a record, deletes the record and reinserts in the record in that order. When we run the package we can see the records are coming down in chronological order but the delete from the split seems to occur after the inserts. Has anyone else experienced this? Is there anything I might be missing to ensure things happen in the order they should? Any advice would be greatly appreciated. Thank you.
View Replies !
Conditional Split Transformation
Hi all, I have set up a conditional split task which i want to use with a flat file data source. The flat file consists of multiple rows of data where the first column is an ID. The conditional split is based on the first column value. What i'd like to know is if in the conditional split once it splits the data can the output be transformed. e.g. If one of the values coming from the flat file requires to be either split up into two values or requires to be passed into a stored procedure to manipulate it, can this be done? Hope that makes sense. All help is greatly appreciated, TIA. Cheers, Grant
View Replies !
CONDITIONAL SPLIT Assistance
i need to use a conditional split transformation to find missing column and direct the output of conditional split to my destination. I have the following columns PatientId, Allergycode, SeverityCode My requirement is to check whether value of a particular column is null or not null. Please help. Ronald
View Replies !
Conditional Split Question
Hello, I am have an ID column that sometimes contains all numeric characters and sometimes contains all digits. I would like to the records with all digits (0-9) to continue downstream in my Data Flow. I would like the records that contain characters other than digits to be logged to a table. This sounds like a job for the Conditional Split transformation, but I don't see a way to easily test for a numeric value. For example, I would like to use something like ISNUMERIC([MyIDField]) for testing the values in my Conditional Split, but I don't see a way to do this. Do I have to create a Derived Column transformation prior to my conditional split that populates a "numeric" ID column for each of my records then test this Derived Column in my Conditional Split? Seems like more work than I would to see for something as simple as testing for a numeric... TIA... Brian
View Replies !
Compare 2 IDs In Conditional Split
If I have 2 input fields to my conditional split, how can I do a compare based on if they are alike. Example, I have 2 IDs, I want to see if the IDs match for a PK/FK relationship, if they match, then output those rows to the conditional's output stream. Do I literally do this or is this not right for the expression? Is there a like statement I should be using instead? [IDName] == [IDName] Basically I have 2 OLE DB sources coming in, 2 sets of columns, and both tables behind each OLE DB souce have an ID field to determine the PK/FK relationship. Out of all the records going through from the OLE DB source to the conditional split, I want to output each set of records where the IDs are equal...thuse after my conditional split, I could then take those records and input them into another txt file....and then the process would repeat for the next records in the pipe where IDs are the same...
View Replies !
Expression In Conditional Split
In the conditional split transformation, I am trying to pass the expression like below. ISNULL(DT_STR(10,1252) [Visit_Date] ) ? "01/01/1990" : [Visit_Date] ! = ISNULL( DT_STR(10,1252)[Visit_Date_Original] ) ? "01/01/1990" : [Visit_Date_original] but it keeps giving me a syntax error.. what am i doing wrong here? thanks,
View Replies !
Conditional Split Transform
Good Day All, I have an interesting situation that I cannot believe is unique. I have a flat file (ragged right) that contains 5 different record types. Each row in the file identifies the record type in the first character. The layout is something like this: File Header Group Header (Contains group id number) Data Item (Contains group id number) . . . Group Footer (DOES NOT CONTAIN GROUP ID NUMBER) Group Header (Contains group id number) Data Item (Contains group id number) . . . Group Footer (DOES NOT CONTAIN GROUP ID NUMBER) File Footer Now I only want to extract data for ONE of the aforementioned groups, however I need the group footer as well because it contains some control totals for the group. The real problem is that the footers do not contain the group id number it goes with. It is a completely positional thing. Silly, yes I know but this particular file layout is an industry standard. I thought the conditional split would be the way to go. Unfortuately, it seems the conditional split wants to split the entire data set before passing the results down stream rather than processing a single row at a time and passing that row down stream before processing the next one. (Blocking versus streaming I think its called) I could do it in a single god-awful script but I would rather try not to have to code the entire thing. Any suggestions would be very helpful.. TIA, Don
View Replies !
Conditional Split - 0 KB Out Files
Hi, I'm exporting data to different text files depending on a condition. My "conditional split" looks like @[User::Variable0] == 0 @[User::Variable1] == 1 @[User::Variable2] == 2...........etc... I've about 8 output files from the "conditional split". For each run, only one condition is valid. When I run the package with value 0, I need to get only one output file with condition 0's data. That's working fine but I'm getting all other output files with 0KB, which I don't want. I'm getting like: Var0.txt ---------------> 2KB Var1.txt ---------------> 0KB Var2.txt ---------------> 0KB Var3.txt ---------------> 0KB ........... etc. How can we eliminate those 0 KB files? Thanks.. Siva.
View Replies !
Conditional Split Query
Hi, I have the following table in MsAccess EmployeesA empId integer, empName varchar(60), empAge integer, empStatus char(1) - can be N,D or S - New, Deleted or Shifted and the following in Sql2005 EmployeesB Id smallint, Name varchar(60), Age int, Status char(1) - Bydefault 'N' I have written a Foreach File package that populates the sql server tables (EmployeesB) from Access(EmployeesA). However i want to check for a condition now. If empStatus = N in EmployeesA, then insert a new record in EmployeesB If empStatus = D in EmployeesA, then search for that field in the EmployeesB by passing empname and age and if found, mark the Status field in EmployeesB as 'D' If empStatus = S in EmployeesA, then search for that field in the EmployeesB by passing empname and age and if found, mark the Status as 'S' in EmployeesB and insert a new row. How do I do it for each table each row in EmployeesA using a foreach file loop? Thanks, ron
View Replies !
Conditional Split Questions
I have a zipcode column that contains xxxxx-xxxx, i want to use conditional split so that i can take the last 4 digits and put them into a different column, I tried to use the SUBSTRING ("ZIP", 6, 4) but it returns an error, any ideas on how i can split it? Thanks.
View Replies !
Conditional Split To FlatFile
Hi, I have a Conditional Split to FlatFile Destination. How can I put the result, that goes in the FlatFile Destination, in a variable also (like in Recordset Destination). Do I have to runs this thing twise (and put the first time in FlatFile Destination and the second time in Recordset Destination)? Thank you.
View Replies !
Conditional Split Transformation
Hi Can any one please tell me how do I give multiple conditions in Conditional Split Transformation. Exp: I have few columns as ReturnSUK TimeSUK EntitySUK PeriodSUK Now the condition should be : ! ISNULL (ReturnSUK) & ! ISNULL (TimeSUK) & ! ISNULL (EntitySUK) &! ISNULL (PeriodSUK) Please provide me the proper condition for the above mentioned requirement. Thank you
View Replies !
Conditional Joins
Hi all, I have 4 tables with the structure shown below Main Table : Create Table TestMain (TestMainId INT , TestCompanyID INT ) Other Tables : Create Table TestCompany1 (Id INT , TestCompanyID INT ) Create Table TestCompany2 (Id INT , TestCompanyID INT ) Create Table TestCompany3 (Id INT , TestCompanyID INT ) In this above tables.. I would have a record in the table TestMain and a entry for that specific record would be in any of the tables like TestCompany1,TestCompany2,TestCompany3 Sample Records : In the table TestMain 1 1000 2 2000 3 3000 4 4000 5 5000 6 6000 7 7000 In the table TestCompany1 1 1000 2 6000 In the table TestCompany2 1 3000 2 4000 3 5000 In the table TestCompany3 1 7000 How do I join those tables and fetch the main record with its subsequent entry from the other tables ? Thanks in advance, HHA
View Replies !
Update Variable After A Conditional Split
I have a Variable called - UpdateIDs. I would like to create a conditional split on id's that have no responses and id's that have responses. The idea is. There is a whole bunch of tables that can be updated if the foreign key is in the no responses id's. So I have created a data flow. The conditional split is there, but I do not have a "Update Global Variable" Destination source. Is there away to achieve this. Basically this is the logic that I am trying to use Dataflow --> Store Id's into Global Variable --> Data Flow update/insert Tables and Rows where Id in Gloabl Variable. Is there another way this can be done? Sorry I am very new to this, and would appreciate any help Thanks Andrew
View Replies !
Conditional Split Is Not Filtering Correctly, Why?
Hi, I have a file with some blank rows. I tried to use a conditional split to filter the blank rows, but it isn't working. For example: ISNULL([ Column 0]). Using a dataviewer, I can see that the blank row is slipping right though the conditional split on its merry way to the script transformation. By the time the blank row gets to the script transform, I get an index out of bounds error. I know the blank rows are the problem because if I remove them, I don't get the index out of bounds error. However, it is not possible to remove the blank rows beforehand. I don't know why the conditional split is not working. Any ideas? Help. The data file is a little weird in that the data looks like this: col1, col2, col3, col4, col5,[] That is, there's a comma after the last field, but there is also a line feed after the comma. I removed the trailing comma to see if that was affecting things, but it made no difference. Thanks
View Replies !
Filter Nulls Using Conditional Split
Hi All, May be this has already been answered . but I didnt find anything while I was searching, so heres the questions. How do I filter out all my records that have a particular column as not NULL , I wanna use conditional split to do this, say for example my table has three columns col1, col2 ,col3 I want all the records where col3 is not null, how do I write "col3 is not null" using expression in conditional split? Thanks
View Replies !
Using Regular Expression In Conditional Split?
I have as csv-file wich I import into an SQL Server table. Now I want to do some checks on it. I use a conditional split to direct data to the other tables (1 table for the correct data, 1 table for the rejected data). Is it possible to use a regular expression in a case in a conditional split to check if a columns has the right format? If yes? How do I do that? If no? What is the alternative? Thanks!
View Replies !
Conditional Split On Field In Csv File
I know this should be simple but I can't figure it out. I am reading in a csv file to a conditional split task, all I want to do is split the file based on a field. Some values in field will have a suffix say ABCD while others wont. So my conditional split says Right(FieldA,4)=="ABCD" which then splits file in two directions or at least it's meant to. Problem is that it does not work. I think it has something to do with the field type in the csv file although I have tried using a Data Conversion task but to no avail all the field values with ABCD suffix are ignored by my conditional split and head off the same way as other values. Funny thing is is that if I manually add a value to the file with a suffix of ABCD and run task again then the conditional split works on the manually added row and all rows with suffix of ABCD. It's like it does not recognise previous values as string until one is added manually. Thanks
View Replies !
Conditional Split Error Message
Getting the below error msg on my conditional split. I changed the error output to ignore errors and that keeps the error msg from appearing (and everything seems to work normally), but why would it evaluate to NULL? Thanks [Conditional Split - Find rows with balances [3412]] Error: The expression "FINDSTRING(Column0,"OPENING",1) > 0 || FINDSTRING(Column0,"CLOSING",1) > 0" on "output "Balance Rows" (3415)" evaluated to NULL, but the "component "Conditional Split - Find rows with balances" (3412)" requires a Boolean results. Modify the error row disposition on the output to treat this result as False (Ignore Failure) or to redirect this row to the error output (Redirect Row). The expression results must be Boolean for a Conditional Split. A NULL expression result is an error.
View Replies !
Conditional Split - DateTime Condition
Hi, I'm trying to check if a row was created yesterday? This does not seem to work? (MyId == "10") && DATEPART("dd",GETDATE()) == (DATEPART("dd",MyDateTimeColumn) - 1) Does anybody know how I can accomplish this? Many thanks.
View Replies !
Conditional Split Based On Conditions
Hi, I have the following table in MsAccess EmployeesA empId integer, empName varchar(60), empAge integer, empStatus char(1) - can be N,D or S - New, Deleted or Shifted and the following in Sql2005 EmployeesB Id smallint, Name varchar(60), Age int, Status char(1) - Bydefault 'N' I have written a Foreach File package that populates the sql server tables (EmployeesB) from Access(EmployeesA). However i want to check for a condition now. If empStatus = N in EmployeesA, then insert a new record in EmployeesB If empStatus = D in EmployeesA, then search for that field in the EmployeesB by passing empname and age and if found, mark the Status field in EmployeesB as 'D' If empStatus = S in EmployeesA, then search for that field in the EmployeesB by passing empname and age and if found, mark the Status as 'S' in EmployeesB and insert a new row. How do I do it for each table each row in EmployeesA using a foreach file loop? Thanks, lolsron
View Replies !
Will Conditional Split Transformation Do The Work?
I have to load a flat file to a table, however there are some rows that I need to remove before loading to the table, see below the file structure. I have to remove both, the blank row and the "**** Federal Do Not Call Registrants ****" as well, I was wondering if Conditional Split Transformation is the right tool to do this, if not, what would you guys recommend me doing. 1112223344|111|222|00000 2223334455|222|333|00000 **** Federal Do Not Call Registrants **** 1112223344|111|222|99999 2223334455|222|333|99999
View Replies !
Nested Loop Joins
Hi, I have came across a situation - When there are no indices on the tables and if we force SQL server to use the "Nested Loop" joins, the query becomes very slow. Since there are no indices then Nested loop join should not be used. The background for this problem is - Analysis services is sending some query to SQL server while doing the cube processing. SQL server is using Nested loop joins even though there are no indices on any of the tables. Is there any way by which we can force the SQL server/Analysis services not to use Nested loop joins since there are no indices in any of the tables. regards, datta.
View Replies !
Merge Join Conditional Split - HeadBanger
I have a merge join that does a full outer join. I then have a conditional split that will breakout by unchanged, insert and update. The update is what I am having a problem with. The conditional split for the update is a follows: !ISNULL(HISTORICAL) && !ISNULL(TRANSFORM) Now I believe the problem is related to spaces in the key field let me explain. The join field is defined as [char](14) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, There was an original mismatch between the two tables of VARCHAR(14) & Char(14) but now there both Char(14). What's interesting is that the few records with Alpha characters correctly does the update but the records with starting numeric data all go down the insert path. The data of the join columns look like '308811151 ' - 5 Spaces This Data incorrectly goes to insert path 'TSTRWR02 ' 6 Space This Data correctly goes to update The data is grouped and sorted by the Key field and the historical and transform column contain a 1 for all records. while the Doc_nbr which is the key I tested the join in SQL server and it works with and without the spaces. From SSIS I also tried RTRIM in the SQL command of the source in addition to substring the first 9 with the right trim and I always received the same results. I am guessing there is something going on with the not isnull in the conditional split but I can't figure it out if I am missing something or if this is a BUG. Three paths of data after the merge join and the conditional split Insert DOC_NBR,HISTORICAL,TRANSFORM,DOC_NBR_historical 206352185 ,,1, 209900165 ,,1, Update DOC_NBR,HISTORICAL,TRANSFORM,DOC_NBR_historical NEE ,1,1,NEE New ,1,1,New Unchanged DOC_NBR,HISTORICAL,TRANSFORM,DOC_NBR_historical ,1,,0000521096 ,1,,0000685216 Any suggestions, am I missing the obvious? LL
View Replies !
Conditional Split Component - Annotation Issues
Greetings SSIS friends, When I configured my conditional split component (directing the data flow in 2 directions) The annotation does not align properly with the lines. Is there anyway to shift the text as to make more presentable? Thanks for your help in advance.
View Replies !
Puzzle: NULL In Conditional Split Error
A little puzzle with this Error - Status and PropertyType fields do not allow nulls while other columns do ( there are about 20 columns in original expression but left out for simplicity - these are created the same way ). Any ideas how to solve it? [Conditional Split Filter Changes [813]] Error: The expression "LOOK_Status != Status || LOOK_PropertyType != PropertyType || (LOOK_OfficeName != OfficeName || ISNULL(LOOK_OfficeName) != ISNULL(OfficeName)) || (LOOK_OfficeID != OfficeID || ISNULL(LOOK_OfficeID) != ISNULL(OfficeID)) " on "output "Listing Changed" (885)" evaluated to NULL, but the "component "Conditional Split Filter Changes" (813)" requires a Boolean results. (My wish for next version is to have better expression editor and be able to see the output for those in dataflow transforms with lets say sample 200 rows)
View Replies !
Conditional Split - Compare DATETIME With Constant
Hi, I have to compare a DATETIME Field with '1/1/1900 12:00:00 AM". Which is default DATE TIME Value in SQL Server. I did compare like TRADEAGREEMENTFROMDATE != (DT_DBTIMESTAMP)(DATEPART("mm",(DT_DBTIMESTAMP)"1/1/1900 12:00:00 AM")) but (DT_DBTIMESTAMP)(DATEPART("mm",(DT_DBTIMESTAMP)"1/1/1900 12:00:00 AM")) returns "12/31/1800 12:00:00:AM" Thanks, Aravind
View Replies !
Conditional Split - Expression Evaluates To Null
Hi everyone! I'm using a conditional split to discriminate modified records. My expression looks like this: col1_source != col1_dest || col2_source != col2_des.....and so on. I use OLE DB Command afterward to update modified records. It all works fine if no columns evaluate to null. If any (source or dest.) evaluates to null, component fails. Any tips how to solve a problem? It has to work like this: If colX_source is null and colX_dest is not null --> Update If colX_source is not null and colX_dest is null --> Update If both colX_source and colX_dest are null --> No update p.s. i apologize if a similar thread exists, I haven't found something of use to me.
View Replies !
Complexity Of Nested Self Left Joins?
Hi,I'm curious about the computational complexity of a query I have. Thequery contains multiple nested self left joins, starting with a simpleselect, then doing a self left join with the results, then doing a selfleft join with those results, etc. What puzzles me is that the timerequired for the query seems to grow exponentially as I add additionalleft joins, which I didn't expect. I expected the inner select toreturn about 25 rows (it does), then I expected the self join to resultin about 25 rows (it does), etc. Each join just adds another column; itdoesn't add more rows. So the left part of the join is staying the samesize, and so is the right part of the join, since I'm always joiningwith the same table.So I would think the time for this query should be (time to join 25rows against the source table) * (num joins), but it seems to besomething like (num rows) ^ (num joins). Any ideas? I'm just trying tounderstand the system a little better. (But if you have any ideas aboutimproving the query, I'm always open to those, too.)The execution plan is what you'd expect: an index seek loop-joined withanother index seek, the results of which are merge-joined with anotherindex seek, the results of which are merge-joined with another indexseek, ad nauseum, until a final "compute scalar cost (39%)" and "select(0%)"For the brave and curious, I've pasted the query below.Thanksselect right(x.cp_yyyymm, 2)+'-'+left(x.cp_yyyymm, 4) as [Month],table0.cp_num_loans/1 as [AFCM9704], table1.cp_num_loans/1 as[AFC9104], table2.cp_num_loans/1 as [BFAT01C], table3.cp_num_loans/1 as[BFAT02B], table4.cp_num_loans/1 as [BFAT03D], table5.cp_num_loans/1 as[BFAT03E], table6.cp_num_loans/1 as [BFAT03F], table7.cp_num_loans/1 as[BFAT04A], table8.cp_num_loans/1 as [BFAT04C], table9.cp_num_loans/1 as[BFAT04D], table10.cp_num_loans/1 as [BFAT99C] from (((((((((((selectdistinct cp_yyyymm from cp_deal_history where cp_deal_id in('AFCM9704', 'AFC9104', 'BFAT01C', 'BFAT02B', 'BFAT03D', 'BFAT03E','BFAT03F', 'BFAT04A', 'BFAT04C', 'BFAT04D', 'BFAT99C') and cp_yyyymmbetween 200304 and 200504) as x left join (select cp_yyyymm,cp_num_loans from cp_deal_history where cp_deal_id='AFCM9704') astable0 on x.cp_yyyymm=table0.cp_yyyymm) left join (select cp_yyyymm,cp_num_loans from cp_deal_history where cp_deal_id='AFC9104') as table1on x.cp_yyyymm=table1.cp_yyyymm) left join (select cp_yyyymm,cp_num_loans from cp_deal_history where cp_deal_id='BFAT01C') as table2on x.cp_yyyymm=table2.cp_yyyymm) left join (select cp_yyyymm,cp_num_loans from cp_deal_history where cp_deal_id='BFAT02B') as table3on x.cp_yyyymm=table3.cp_yyyymm) left join (select cp_yyyymm,cp_num_loans from cp_deal_history where cp_deal_id='BFAT03D') as table4on x.cp_yyyymm=table4.cp_yyyymm) left join (select cp_yyyymm,cp_num_loans from cp_deal_history where cp_deal_id='BFAT03E') as table5on x.cp_yyyymm=table5.cp_yyyymm) left join (select cp_yyyymm,cp_num_loans from cp_deal_history where cp_deal_id='BFAT03F') as table6on x.cp_yyyymm=table6.cp_yyyymm) left join (select cp_yyyymm,cp_num_loans from cp_deal_history where cp_deal_id='BFAT04A') as table7on x.cp_yyyymm=table7.cp_yyyymm) left join (select cp_yyyymm,cp_num_loans from cp_deal_history where cp_deal_id='BFAT04C') as table8on x.cp_yyyymm=table8.cp_yyyymm) left join (select cp_yyyymm,cp_num_loans from cp_deal_history where cp_deal_id='BFAT04D') as table9on x.cp_yyyymm=table9.cp_yyyymm) left join (select cp_yyyymm,cp_num_loans from cp_deal_history where cp_deal_id='BFAT99C') astable10 on x.cp_yyyymm=table10.cp_yyyymm order by x.cp_yyyymm
View Replies !
Nested SQl With Count, Percent And Joins: How?!
Hiya, I have a need for a complex SQL statement to provide reporting information, but the SQL is way over my head and although I have some of the elements, I can't seem to pull them together to create a working SQL statement. My database structure is as outlined below: tblDef ------ ID IRVitems ABC A1,A2,A3,A4,A5 tblIRV ------ ID IRVvalues 001 1,5,text1,10,3 002 2,1,text2,1,3 003 2,4,text3,1,1 004 1,4,text4,4,1 005 1,2,text5,4,1 tblLabel -------- lblID lblVALUE lblTXT A1 1 AAA A1 2 BBB I currently query tblDef to get IRVitems and in turn then query the other two tables to get statistical information to present in a report (via ASP). For each item returned from IRVitems, I would like to report the spread and frequency of different values as follows: A1 Value Label Count Percent 1 AAA 3 60 2 BBB 2 40 and then for A2, etc (although missing out A3 as it is a text item, but I can deal with that via ASP code beforehand). I would expect to have to hit the DB for each of the IRVitems (so once for getting the data for A1, againfor A2, etc). I was provided a great bit of code to use SUBSTRING and GROUP BY to get this data (thanks zuomin), but I didn't consider the possible text values or numbers >9 when defining what I was trying to do (to be fair, they're new requirements): SELECT SUBSTRING(IRVvalues, 1, 1) AS Value, COUNT(ID) AS Count FROM tblIRV GROUP BY SUBSTRING(IRVvalues, 1, 1) ORDER BY value which returns like this: Value Count 1 187 2 163 3 2 Can I do a similar query to get all the info I need in one go? I saw the articale on a user-defined 'split' function (http://code.msdn.microsoft.com/SQLExamples/Wiki/View.aspx?title=StringArrayInput&referringTitle=Home) that can be used to split up the IRVvalues string to access the position I need in the array, but I'm a little clueless on how to then embed that into a SQl statement. Can anyone point me in the right direction please?
View Replies !
Short Circuit Evaluation In Conditional Split Expression
I think I know the answer to this but thought I'd ask anyway. I have a conditional split to check a column for null values or empty string values. It looks like this: (!ISNULL(Ballot)) || (LEN(TRIM(Ballot)) > 0) My question is: Are both sides of the expression evaluated? My testing says yes, because a Null value causes an error. Is there a way to short circuit the evaluation like the || operator in C# or the (less than elegant, and seemingly threatening) OrElse operator in VB? Whats the best alternative: A slightly more complex expression that turns a null value into an empty string A script component Two conditional splits Two paths out of one condtional split I went with the first option, here is the expression I came up with: LEN(ISNULL(Ballot) ? "" : TRIM(Ballot)) > 0
View Replies !
|