CFParam link to a table with no record
Guys, I'm a newb feeling my way a long with CF, and have made
some good headway. Here's my challenge de jour:
I have a main table, `customers`. I have two other tables,
`products` and `customers_products`. The latter has four fields:
its own primary key, a customer_id, a product_id, and the
product_name.
For the sake of my question, I've loaded `customers_products`
with dummy data that relates perfectly with some `customer`s and
their `products`, using their respective keys. I can easily insert
new records to this table, `customer_products`, for any customer by
using an INSERT form, as long as there is already at least one
customer record in the `customer_product` table. But, if I attempt
to go to
add_product.cfm?customer_id= from that customer form for a
customer who has yet to have any products entered in
`customer_products`, I get the error, "Invalid data '' for
CFSQLTYPE CF_SQL_NUMERIC". This, I presume, due to the null value,
as the CRParam URL is the customer_id - and there is no customer_id
in that table, yet.
I want to be able to go from the customer record form to the
add_products.cfm form, specifically for that customer, even though
there are no current records for that customer in the
`customer_products` table.
I'd add code, but I have a feeling that this is not so much a
problem with code, but lack of knowledge of how to do a common
practice: add a new record to a table and applying the correct
customer key to the customer_id field.
If you know of a site or tutorial that I can use, that would
be great.
Thank you!
If your SQL query is looking at the URL for an ID in order to
query the table and it doesn't exist you'll get a query.recordcount
of 0. You can then use this to direct the user to another
page...like an add page or something. At the same time you could
also check the ID is right before querying the database (my syntax
may be a little incorrect as I am doing this from memory at 8am!)
e.g.
<cfif isDefined("url.customer_id") and
len(url.customer_id)>
<!---Do your query here.--->
<cfif my_query.recordcount eq 0>
<!--- the URL existed but the query returned 0 so let's
redirect them to the add page or something --->
<cflocation url="my_add_page.cfm" addtoken="no" />
<cfabort />
</cfif>
<cfelse>
<!---URL looks bad.--->
<p>Nothing was found because the URL looks
wrong.</p>
</cfif>
Similar Messages
-
I HAVE A SOURCE TABLE WITH 10 RECORDS AND TARGET TABLE 15 RECORDS. MY QUESTION IS USING WITH THE TABLE COMPARISON TRANSFORM .I WANT TO DELETE UNMATCHED RECORDS FROM THE TARGET TABLE ?? HOW IT IS ??
Hi Kishore,
First identify deleted records by selecting "Detect deleted rows from comparison table" feature in Table Comparison
Then Use Map Operation with Input row type as "delete" and output row type as "delete" to delete records from target table. -
Select max date from a table with multiple records
I need help writing an SQL to select max date from a table with multiple records.
Here's the scenario. There are multiple SA_IDs repeated with various EFFDT (dates). I want to retrieve the most recent effective date so that the SA_ID is unique. Looks simple, but I can't figure this out. Please help.
SA_ID CHAR_TYPE_CD EFFDT CHAR_VAL
0000651005 BASE 15-AUG-07 YES
0000651005 BASE 13-NOV-09 NO
0010973671 BASE 20-MAR-08 YES
0010973671 BASE 18-JUN-10 NOHi,
Welcome to the forum!
Whenever you have a question, post a little sample data in a form that people can use to re-create the problem and test their ideas.
For example:
CREATE TABLE table_x
( sa_id NUMBER (10)
, char_type VARCHAR2 (10)
, effdt DATE
, char_val VARCHAR2 (10)
INSERT INTO table_x (sa_id, char_type, effdt, char_val)
VALUES (0000651005, 'BASE', TO_DATE ('15-AUG-2007', 'DD-MON-YYYY'), 'YES');
INSERT INTO table_x (sa_id, char_type, effdt, char_val)
VALUES (0000651005, 'BASE', TO_DATE ('13-NOV-2009', 'DD-MON-YYYY'), 'NO');
INSERT INTO table_x (sa_id, char_type, effdt, char_val)
VALUES (0010973671, 'BASE', TO_DATE ('20-MAR-2008', 'DD-MON-YYYY'), 'YES');
INSERT INTO table_x (sa_id, char_type, effdt, char_val)
VALUES (0010973671, 'BASE', TO_DATE ('18-JUN-2010', 'DD-MON-YYYY'), 'NO');
COMMIT;Also, post the results that you want from that data. I'm not certain, but I think you want these results:
` SA_ID LAST_EFFD
651005 13-NOV-09
10973671 18-JUN-10That is, the latest effdt for each distinct sa_id.
Here's how to get those results:
SELECT sa_id
, MAX (effdt) AS last_effdt
FROM table_x
GROUP BY sa_id
; -
How to spool in excel sheet of table with 1561828 records
how to spool in excel sheet of table with 1561828 records
i think excel got only 65l limit?
COUNT(*)
1561828
i am using windows box...any suggestions?Raman wrote:
means excel 2007 can hold 15,61,828 records ? can i give like spool filename.xls?You can name the spool file anything you want, but surely you realize that naming it 'filename.xls' doesn't make it an xls file. A name is just a name. There are industry standards on certain names indicating certain file formats, but the name doesn't make it that format. -
Crystal Report linked to a table with filter attached
I have a Crystal Report based on 2 tables and I want it to display every incident in the incident table and to pull the truckID of the
first truck on the scene from the truck table . So the finished product should look like this…
IncidentID IncidentNum ResponseTime First Arriving Truck Disctict
1x44452 1258ab55 5:32 B8 2
*The first arriving truck is the truck in the Truck Table with the same IncidentID and the earliest ArrivalTime. There will be multiple trucks for each incident but I want it to only show the one that arrived first (ArrivalTime). So one line per incidentID.
Incident Table
IncidentID
IncidentNum
ResponseTime
District
Truck Table (Will contain many trucks for one incident with the following info
Truckkey
IncidentID (Link to Incident Table)
ArrivalTime
TruckID
I figure I probably need to build a formula with the min function or perhaps an OnCommand – I’m just not sure.
The biggest issue is the overall report has 4 filter settings. They can select a date range, a location, an incident type and a range for the response time. So I do this with the Select Expert
I can get all of that to work except I cannot figure out how to get it to pull the First Arriving Truck without duplicating the incident
line. Also, if there is a Truck with an ArrivalTime of Null I want it to ignore that Truck Table record.
Can anyone help???Hi Debbie,,
You may try this:
1) Go to the Group Expert > Create a Group on the 'Incident ID' field from the Incident Table
2) Insert a summary on the 'Arrival Time' field and place the field on the Group Footer
3) Move all the fields from the Details section to the Group Footer
4) Go to the Group Selection Formula (Report > Selection Formulas > Group) and use this code:
{Truck.ArrivalTime} = Minimum({Truck.ArrivalTime}, {Incident ID})
5) Suppress the Details Section
-Abhilash -
Database Adapter: cannot access table with complex record type as columns
Hi all,
I cannot perform any operations on a table that has columns with complex record type.
I have created a table to store purchase order details.
Sample script:
CREATE type XX_CUST_INFO_TYP as object
ssn VARCHAR2(20),
rating NUMBER(15)
CREATE type XX_ITEM_TYP as object
item_name VARCHAR2(20),
unit_price NUMBER(15),
quantity NUMBER(15)
CREATE table XX_PORDER (cust XX_CUST_INFO_TYP, porder XX_ITEM_TYP);
When i try to access the table X_PORDER in jdev through a database Adapter, i receive the error as
"some tables contains columns that are not recognized by the database adpter"
1.) so in this case, how to include such tables that have complex types?
Also, check out this scenario also..
1. add a table through a database adapter
2. drop the table in backend
3. i can still see the table and its structure in the database adapter wizard even after restarting Jdeveloper.. How is it possible?
These are some really interesting scenarios to experiment. Please suggest your ideas on this..
Thanks All!Hi Hem,
for a select you could select against a view. And for inserts you could create a stored procedure. They support complex types since 10.1.2. Complex types support in tables/views was added for 11 (next major release).
You might be able to use PureSQL as a workaround too, i.e.
insert into XX_PORDER values (XX_CUST_INFO_TYP(?,?), XX_ITEM_TYP(?, ?, ?))
As for your other problem, in 10.1.2/10.1.3 the DBAdapter wizard sits on top of the Jdev Offline Tables and TopLink Mapping Workbench components. When you remove a table in the wizard it won't delete the Offline DB component. It was added by the wizard, but afterwards it is public to the entire Jdev project. You must remove it from Jdev yourself. This has been improved for the next major release too, no artifacts from underlying components are created.
To remove it select:
Offline DB Objects -> <schema> -> <table> and try File.. Erase From Disk.
Thanks
Steve -
Dynamic Table with Random Records
What I am trying to do is select random records from a table
and display them in a dynamic table with max columns set to 3 and
the 4th record to be on a new row. Below is what I have right now
and it works to randomly pick records but has no function to set
columns in a table. If there is an easier way feel free to let me
know. I have tried various ways to do this but none seem to work.
<CFQUERY NAME="getItems" DATASOURCE="absi">
SELECT catfit.*, modcats.*, prodmat.*, prod.* FROM catfit,
modcats,
prodmat, prod WHERE prodmat.prodid=catfit.prodid And
catfit.catid=modcats.catid
ORDER BY modl ASC </cfquery>
<cfif getItems.recordCount>
<cfset showNum = 3>
<cfif showNum gt getItems.recordCount>
<cfset showNum = getItems.recordCount>
</cfif>
<cfset itemList = "">
<cfloop from="1" to="#getItems.recordCount#"
index="i">
<cfset itemList = ListAppend(itemList, i)>
</cfloop>
<cfset randomItems = "">
<cfset itemCount = ListLen(itemList)>
<cfloop from="1" to="#itemCount#" index="i">
<cfset random = ListGetAt(itemList, RandRange(1,
itemCount))>
<cfset randomItems = ListAppend(randomItems, random)>
<cfset itemList = ListDeleteAt(itemList,
ListFind(itemList, random))>
<cfset itemCount = ListLen(itemList)>
</cfloop>
<cfloop from="1" to="#showNum#" index="i">
<cfoutput>
<table width="205" border="0" align="left"
cellpadding="0" cellspacing="0">
<tr>
<td width="235" height="116"> <div
align="center"><img
src="../Products/ProductPictures/#getitems.pic[ListGetAt(randomItems,
i)]#" width="100"></div></td>
</tr>
<tr>
<td
class="ProdTitle">#getitems.brand[ListGetAt(randomItems,
i)]# #getitems.modl[ListGetAt(randomItems, i)]#</td>
</tr>
<tr>
<td
class="paragraph">$#getitems.prc[ListGetAt(randomItems,
i)]#</td>
</tr>
<tr>
<td><A
href="../Products/details.cfm?prodid=#getItems.prodid[ListGetAt(randomItems,
i)]#" class="linkcontact">more
info</a></td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</cfoutput>
</cfloop>
</cfif>To start a new row after 3 records, do something like this.
<table>
<tr>
<cfoutput query="something">
<td>#data#<td>
<cfif currentrow mod 3 is 0>
</tr><tr>
</cfoutput>
</tr>
</table>
You should also know that your approach is very inefficient
in that you are bringing in to cold fusion more data than you need.
First of all you are selecting every field from 3 tables when you
don't appear to be using all of them. Second, you are selecting
every record and you only want to use 3. There are better ways out
there, but they are db specific and you did not say what you are
using. -
Comparing Two tables with 300k records and update one table
Could you let me know how to compare two tables having 300k records and update one table.below is the scenario.
Table Tabl_1 has columns A,B and Tabl_2 has columns B,new_column.
Column B has same data in both the tables.
I need to update Tabl_2 in new_column with Tabl_1 A column data by comparing B column in both tables.
I m trying to do using PLSQL Tables.
Any suggestion?
Thanks.Hi,
Whenever you have a problem, please post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) from all tables involved, so that the people who want to help you can re-create the problem and test their ideas.
Also post the results you want from that data, and an explanation of how you get those results from that data, with specific examples.
If you're asking about a DML statement, such as UPDATE, the CREATE TABLE and INSERT statements should re-create the tables as they are before the DML, and the results will be the contents of the changed table(s) when everything is finished.
Always say which version of Oracle you're using (for example, 11.2.0.2.0).
See the forum FAQ: https://forums.oracle.com/message/9362002
ef2019c7-080c-4475-9cf4-2cf1b1057a41 wrote:
Could you let me know how to compare two tables having 300k records and update one table.below is the scenario.
Table Tabl_1 has columns A,B and Tabl_2 has columns B,new_column.
Column B has same data in both the tables.
I need to update Tabl_2 in new_column with Tabl_1 A column data by comparing B column in both tables.
I m trying to do using PLSQL Tables.
Any suggestion?
Thanks.
Why are you trying to use PL/SQL tables? If tabl_1 and tabl_2 are regular database tables, it will be much simpler and faster just to use them.
Depending on your requirements, you can do an UPDATE or MERGE, either in SQL or in PL/SQL. -
Program times out while looping at internal table with huge records - Needs fine tuning suggestions
Hi,
I am trying to execute a report. It times out while looping at vbap internal table. This internal table has 140000 records and does the validation within this loop and geenrates data for the output. Due to this huge volume, the program times out when executed foreground.
There are no nested loops, so I cannot apply 'Parallel Cursor' here.
Is there any way I can fine tune the program so that it doesn't timeout? Is it possible to apply 'Parallel Processing' . If yes, how?
Thanks,
PavanHi Pavan ,
->sort your internal table by all primary key for vbap.
->Read a Record from the table (use your condition here)
->if record satisfys your where condition ,get that record index .
->loop the table from the index (without condition) .
its like parallel cursor only but for single loop .;-)
->use field symbols ,wherever possible .
if still dump is coming ,contact your basis team .
regards,
Krishna. -
Reg - Reading internal table with multiple record in a single field
Dear Guru's,
i want to read a internal table with field having mutilple entries like
read table READ TABLE LT_T2 INTO LT_T2_WA WITH KEY HKONT IN ( '0001152430', '0001152930', '0001152410' ).
But it says comma without preceding colon (after READ?).
please guide me.....
thanks & Regards,
Balaji.Sya this is inside the loop.
plz check....
loop at lt_t2 into lt_t2_wa.
READ TABLE LT_T2 INTO LT_T2_WA WITH KEY HKONT IN ( '0001152430', '0001152930', '0001152410' ).
endloop.
thanks & Regards,
Balaji.S -
Populating a temp table with multiple records.
I want to populate a temp table with a a set of recs. This table will be used for
crossing/joining with my other tables to pull out data.
ie:
Main table (loc)contains these fields -> county,permit,utme,utmn
Temp table ( tmpid) contains these fields -> countytemp, permittemp
So I will be doing a statement like this once my temp table is populated.
Select l.county,l.permit,l.utme,l.utmn from loc l,tmpid t where l.county=t.countytemp and l.permit=t.permittemp;
So this temp table will basically be a list of ids that can range from a few recs to several hundred.
I want to know is there is way I can poplulate/repopulate it easily using sqlPlus/other by reading in a Ascii file
from client PCs. (besides SQL loader).HI
let me explain my requirement first,
i need to populate my block with the results from the following sql
SELECT * from contactdet where
(Month=12 and TrType='MTM' and FinYr='04-05' and Userid='SA009' and Clcode='SB001')
UNION
SELECT * from contactdetSUM where (Clcode='SB001' AND CSCODE='AB001')
Pease note. the where clauses i have put are different in each table and my requirement is
the constants values i have put in where clause should be variable (ie. i should be able to put variables like :clcode or so)
I tried us using Query data source type as 'FROM clause query' but it does not allow me to put variables in where clause.
Is there any way out i can do this ? Please help me
Regards
Uday -
Read from file to Internal Table With Extra Record
Hi,
I'm trying to read file from application server into internal table. Then loop thru the internal table and display.
My text file only have 2 rows of records. However, when display the internal table, it show the 2 records plus an extra line with 0. May I know where did I do wrong?
PARAMETERS: p_infile LIKE rlgrap-filename OBLIGATORY DEFAULT '/usr/sap/'..
DATA: ld_file LIKE rlgrap-filename.
*Internal tabe to store upload data
TYPES: BEGIN OF t_record,
name1 like pa0002-VORNA,
name2 like pa0002-name2,
age type i,
END OF t_record.
DATA: it_record TYPE STANDARD TABLE OF t_record INITIAL SIZE 0,
wa_record TYPE t_record.
*Text version of data table
TYPES: begin of t_uploadtxt,
name1(10) type c,
name2(15) type c,
age(5) type c,
end of t_uploadtxt.
DATA: wa_uploadtxt TYPE t_uploadtxt,
wa_upload TYPE t_uploadtxt.
*String value to data in initially.
DATA: wa_string(255) type c.
START-OF-SELECTION.
ld_file = p_infile.
OPEN DATASET ld_file FOR INPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc NE 0.
ELSE.
DO.
CLEAR: wa_string, wa_uploadtxt.
READ DATASET ld_file INTO wa_string.
IF sy-subrc NE 0.
EXIT.
ELSE.
SPLIT wa_string AT SPACE INTO wa_uploadtxt-name1 wa_uploadtxt-name2 wa_uploadtxt-age.
MOVE-CORRESPONDING wa_uploadtxt TO wa_upload.
APPEND wa_upload to it_record.
ENDIF.
ENDDO.
CLOSE DATASET ld_file.
ENDIF.
END-OF-SELECTION.
loop at it_record INTO wa_record.
write / wa_record-name1.
write / wa_record-name2.
write / wa_record-age.
Endloop.Hi,
Am attaching the file I used. There's no empty line after the second record.
After execute, it is showing:
Joe Adams 20
0
John Smith 40
0
May I know why there's 0, where did i do wrong?
Thank you. -
Fill a table with multiple records
REPORT REPORT1.
DATA: wa_itab1 LIKE TABLE1.
DATA: wa_itab2 LIKE TABLE2.
DATA: itab1 TYPE STANDARD TABLE OF TABLE1,
itab2 TYPE STANDARD TABLE OF TABLE2.
DATA: v_dat TYPE d VALUE '20080101'.
SELECT * FROM TABLE1 INTO TABLE itab1.
LOOP AT itab1 INTO wa_itab1.
wa_itab2-FIELD1 = wa_itab1-FIELD1.
wa_itab2-FIELD2 = wa_itab1-FIELD2.
wa_itab2-FIELD3 = wa_itab1-FIELD3.
wa_itab2-FIELD4 = v_dat. "pass the initialized date
APPEND wa_itab2 TO itab2.
v_dat = v_dat + 1. " increment the date
IF v_dat GT '20080105'.
EXIT.
ENDIF.
ENDLOOP.
MODIFY TABLE2 FROM TABLE itab2.
I have the program above which is not doing exactly what I need. Lets say TABLE1 has 3 records
FIELD1 FIELD2 FIELD3
PLANT1 STOR_LOC1 20
PLANT2 STOR_LOC2 30
PLANT3 STOR_LOC3 40
The loop is for 5 days so in TABLE2 I want to see the following
FIELD1 FIELD2 FIELD3 FIELD4
PLANT1 STOR_LOC1 20 20080101
PLANT2 STOR_LOC2 30 20080101
PLANT3 STOR_LOC3 40 20080101
PLANT1 STOR_LOC1 20 20080102
PLANT2 STOR_LOC2 30 20080102
PLANT3 STOR_LOC3 40 20080102
PLANT1 STOR_LOC1 20 20080103
PLANT2 STOR_LOC2 30 20080103
PLANT3 STOR_LOC3 40 20080103
PLANT1 STOR_LOC1 20 20080104
PLANT2 STOR_LOC2 30 20080104
PLANT3 STOR_LOC3 40 20080104
PLANT1 STOR_LOC1 20 20080105
PLANT2 STOR_LOC2 30 20080105
PLANT3 STOR_LOC3 40 20080105
At the moment the program gives me
FIELD1 FIELD2 FIELD3 FIELD4
PLANT1 STOR_LOC1 20 20080101
PLANT2 STOR_LOC2 30 20080101
PLANT3 STOR_LOC3 40 20080101
Do I need a WHERE clause and if so how do I add assuming that the equal fields are FIELD1 and FIELD2? ThanksI have added a DO condition to the program and tried a couple of attempts. The latest is below. With this attempt I get 80,000+ records the majority of which do not have the fields filled. Thanks
REPORT REPORT1.
DATA: wa_itab1 LIKE TABLE1.
DATA: wa_itab2 LIKE TABLE2.
DATA: itab1 TYPE STANDARD TABLE OF TABLE1,
itab2 TYPE STANDARD TABLE OF TABLE2.
DATA: v_dat TYPE d VALUE '20080101'.
SELECT * FROM TABLE1 INTO TABLE itab1.
DO v_dat+1 TIMES.
LOOP AT itab1 INTO wa_itab1.
wa_itab2-FIELD1 = wa_itab1-FIELD1.
wa_itab2-FIELD2 = wa_itab1-FIELD2.
wa_itab2-FIELD3 = wa_itab1-FIELD3.
wa_itab2-FIELD4 = v_dat. "pass the initialized date
APPEND wa_itab2 TO itab2.
v_dat = v_dat + 1. " increment the date
IF v_dat GT '20080105'.
EXIT.
ENDIF.
ENDLOOP.
ENDDO.
MODIFY TABLE2 FROM TABLE itab2. -
Problem when updating af:table with new records
Hi,
I have a page that shows two tables from the same DB table but with different VOs.
Table1 displays records where date_column is within the current month, table2 displays all records.
The problem is that when I add new record and return to the page, I find out that the new record has been added to both tables, it’s shown in table1 even though its date is not within this month.
When I run the page again the problem is solved and everything is in the right place !!
How can I fix this?Hi,
you will have to re-query the iterators because you add the new row to a VO - which is an iterator - that wont filter your input (instead you add to a filtered iterator). However, its strange that both tables show that value because if these are different VO they should be independent. Only if they are instances of the same VO tehy are expected to show the same data
Frank -
Joining Three Tables with multiple record
Dear All
we need some help. We have Three Tables in sqlserver2012
Master Table
OrderID PackageID CustomerName
1 1 Abc
2 2 Bcd
3 1 xyz
Child1 Table
OrderID ControlName
1 Row1COlumn1 (It Means Pant in Red Color is selected by user(relation with Child2 Table))
1 Row3Column1 (It Means Gown in Blue Color is selected by user(relation with Child2 Table))
1 Row4Column3 (It Means T Shirt in White Color is selected by user(relation with Child2 Table))
2 Row1Column2 (It Means Tie in Green Color is selected by user(relation with Child2 Table))
2 Row3Column1 (It Means Bow in Red Color is selected by user(relation with Child2 Table))
Child2 Table
PackageID Product Color1 Color2 Color3
1 Pant Red Green Blue
1 Shirt Blue Pink Purple
1 Gown Blue Black Yellow
1 T Shirt Red Green White
2 Tie Red Green White
2 Socks Red Green White
2 Bow Red Green White
We want to have result like
OrderID PackageID CustomerName Pant Gown T Shirt Tie Bow
1 1 ABC Red Blue White x
x
Blue
2 2 Bcd x x x
Green Red
I have tried
;with mycte as (
select ms.OrderID,ms.PackageID
,ms.CustomerName
, Replace(stuff([ControlName], charindex('Column',ControlName),len(ControlName),''),'Row','') rowNum
,Replace(stuff([ControlName], 1, charindex('Column',ControlName)-1 ,''),'Column','') columnNum
From child1 c inner join MasterTable ms on c.Orderid=ms.orderid)
,mycte1 as (
select *, row_number() Over(Partition By PackageID Order By Child2ID) rn from child2
,mycte2 as (
Select m.OrderID,m.PackageID, m.CustomerName, m.ColumnNum, m1.Product
--,m1.Color1 , m1.Color2, m1.Color3
, Case WHEN ColumnNum= 1 Then Color1
WHEN ColumnNum= 1 Then Color1
WHEN ColumnNum= 2 Then Color2
WHEN ColumnNum= 3 Then Color3 End Colors
from mycte m
join mycte1 m1 on m.rowNum=m1.rn and m.PackageID=m1.PackageID)
Select OrderID,PackageID,CustomerName, ISNULL(Max(Case WHen Product='Pant' Then Colors END),'X') as 'Pant'
, ISNULL(Max(Case WHen Product='Gown' Then Colors END),'X') as 'Gown'
, ISNULL(Max(Case WHen Product='T Shirt' Then Colors END),'X') as 'T Shirt'
, ISNULL(Max(Case WHen Product='Tie' Then Colors END),'X') as 'Tie'
, ISNULL(Max(Case WHen Product='Bow' Then Colors END),'X') as 'Bow'
FROM mycte2
Group by OrderID,PackageID, CustomerName
it works if we have a product in one color only. like if we have pant in red and blue then its showing just first record
Thanks and Best Regards UmairAre you really storing textual values like "Row3Column1" or "Row4Column3"???
Your model is a mess. Redesign it.. btw, these kind of models are quite complex.
USE tempdb;
GO
CREATE TABLE dbo.Colors
ColorID INT NOT NULL ,
ColorName NVARCHAR(255) NOT NULL ,
CONSTRAINT PK_Colors PRIMARY KEY ( ColorID )
CREATE TABLE dbo.Products
ProductID INT NOT NULL ,
ProductName NVARCHAR(255) NOT NULL ,
CONSTRAINT PK_Products PRIMARY KEY ( ProductID ) ,
CONSTRAINT UQ_Products_ProductName UNIQUE ( ProductName )
CREATE TABLE dbo.Packages
PackageID INT NOT NULL ,
CONSTRAINT PK_Packages PRIMARY KEY ( PackageID )
CREATE TABLE dbo.PackageDetails
ColorID INT NOT NULL ,
PackageID INT NOT NULL ,
ProductID INT NOT NULL ,
CONSTRAINT PK_PackageDetails PRIMARY KEY ( ColorID, PackageID, ProductID ) ,
CONSTRAINT FK_PackageDetails_ColorID FOREIGN KEY ( ColorID ) REFERENCES dbo.Colors ( ColorID ) ,
CONSTRAINT FK_PackageDetails_PackageID FOREIGN KEY ( PackageID ) REFERENCES dbo.Packages ( PackageID ) ,
CONSTRAINT FK_PackageDetails_ProductID FOREIGN KEY ( ProductID ) REFERENCES dbo.Products ( ProductID )
CREATE TABLE dbo.Orders
OrderID INT NOT NULL ,
CustomerID INT NOT NULL ,
PackageID INT NOT NULL ,
CONSTRAINT PK_Orders PRIMARY KEY ( OrderID ) ,
CONSTRAINT UQ_Orders_CustomerID UNIQUE ( OrderID, PackageID ) ,
CONSTRAINT FK_Orders_PackageID FOREIGN KEY ( PackageID ) REFERENCES dbo.Packages ( PackageID )
CREATE TABLE dbo.OrderDetails
ColorID INT NOT NULL ,
OrderID INT NOT NULL ,
PackageID INT NOT NULL ,
ProductID INT NOT NULL ,
CONSTRAINT FK_OrderDetails_Orders FOREIGN KEY ( OrderID, PackageID ) REFERENCES dbo.Orders ( OrderID, PackageID ) ,
CONSTRAINT FK_OrderDetails_PackageDetails FOREIGN KEY ( ColorID, PackageID, ProductID ) REFERENCES dbo.PackageDetails ( ColorID, PackageID, ProductID )
GO
INSERT INTO dbo.Colors
( ColorID, ColorName )
VALUES ( 1, 'Red' ),
( 2, 'Green' ),
( 3, 'Blue' ),
( 4, 'Pink' ),
( 5, 'Purple' ),
( 6, 'Black' ),
( 7, 'Yellow' ),
( 8, 'White' );
INSERT INTO dbo.Products
( ProductID, ProductName )
VALUES ( 1, 'Pant' ) ,
( 2, 'Shirt' ) ,
( 3, 'Gown' ) ,
( 4, 'T Shirt' ) ,
( 5, 'Tie' ) ,
( 6, 'Socks' ) ,
( 7, 'Bow' );
INSERT INTO dbo.Packages
( PackageID )
VALUES ( 1 ),
( 2 );
INSERT INTO dbo.PackageDetails
( PackageID, ProductID, ColorID )
VALUES ( 1, 1, 1 ),
( 1, 2, 3 ),
( 1, 3, 3 ),
( 1, 4, 1 ),
( 2, 5, 1 ),
( 2, 6, 1 ),
( 2, 7, 1 ),
( 1, 1, 2 ),
( 1, 2, 4 ),
( 1, 3, 6 ),
( 1, 4, 2 ),
( 2, 5, 2 ),
( 2, 6, 2 ),
( 2, 7, 2 ),
( 1, 1, 3 ),
( 1, 2, 5 ),
( 1, 3, 7 ),
( 1, 4, 8 ),
( 2, 5, 8 ),
( 2, 6, 8 ),
( 2, 7, 8 );
INSERT INTO dbo.Orders
( OrderID, PackageID, CustomerID )
VALUES ( 1, 1, 1 ),
( 2, 2, 2 ),
( 3, 1, 3 );
INSERT INTO dbo.OrderDetails
( ColorID, OrderID, PackageID, ProductID )
VALUES ( 1, 1, 1, 1 ),
( 3, 1, 1, 3 ),
( 8, 1, 1, 4 ),
( 2, 2, 2, 5 ),
( 1, 2, 2, 7 );
GO
SELECT *
FROM dbo.Orders O
INNER JOIN dbo.OrderDetails OD ON OD.OrderID = O.OrderID
INNER JOIN dbo.Products P ON P.ProductID = OD.ProductID
INNER JOIN dbo.Colors C ON C.ColorID = OD.ColorID;
GO
DROP TABLE dbo.OrderDetails;
DROP TABLE dbo.Orders;
DROP TABLE dbo.PackageDetails;
DROP TABLE dbo.Packages;
DROP TABLE dbo.Products;
DROP TABLE dbo.Colors;
GO
Maybe you are looking for
-
CD line item separately in Customer Line item
Dear Experts, My client requirement is Cash Discount line item can be separated for Customer Line Item. Standard setting: When customer pays the invoice and cash discount is there on invoice the entry will be as below in Standard SAP Bank Inco A/C Dr
-
i'm trying to unlock 2 different Phenom II X2 560 BE on 2 different 785GM-P45 boards but am running into trouble. im following the standard guide (https://forum-en.msi.com/index.php?topic=132314.0) but when i select cpu core control, i only see the
-
please how can i reinstall ATI catalyst install manager which i unistall mistakenly?
-
Hello EXPERTS, How to ignore headers in flat files and use in MFL transformation,for me wen we do MFL transformation MFL goes as first record in the XML which we dont want.
-
My car stereo, an Alpine CDE-121, won't recognize my iPod mini. I get an Error 02 message indicating that I need to update the iPod's software, but iTunes tells me that the software is updated.