Click here to Skip to main content
15,898,134 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
how to filter product wise record example of size selected or fit wise product shows in product compulsary
1.tbl_size
----------------------------------------------------------------------------
USE [inventory]
GO
/****** Object: Table [dbo].[tbl_size] Script Date: 09/29/2014 11:21:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tbl_size](
[cate_id] [bigint] IDENTITY(1,1) NOT NULL,
[Size] [nvarchar](50) COLLATE Latin1_General_CI_AI NULL,
[product_id] [bigint] NULL,
[list_id] [bigint] NULL,
CONSTRAINT [PK_Person_choicdetail] PRIMARY KEY CLUSTERED
(
[cate_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER TABLE [dbo].[tbl_size] WITH CHECK ADD CONSTRAINT [FK_Person_choicdetail_Products] FOREIGN KEY([product_id])
REFERENCES [dbo].[Products] ([ProductID])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[tbl_size] CHECK CONSTRAINT [FK_Person_choicdetail_Products]
GO
ALTER TABLE [dbo].[tbl_size] WITH CHECK ADD CONSTRAINT [FK_tbl_size_Category_List] FOREIGN KEY([list_id])
REFERENCES [dbo].[Category_List] ([list_id])
GO
ALTER TABLE [dbo].[tbl_size] CHECK CONSTRAINT [FK_tbl_size_Category_List]

2.tbl_fit
------------------------------------------------------------------------------
USE [inventory]
GO
/****** Object: Table [dbo].[tbl_Fit] Script Date: 09/29/2014 11:22:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tbl_Fit](
[fit_id] [int] IDENTITY(1,1) NOT NULL,
[Fit] [nchar](10) COLLATE Latin1_General_CI_AI NULL,
[Fit_desc] [nvarchar](50) COLLATE Latin1_General_CI_AI NULL,
[product_id] [bigint] NULL,
[list_id] [bigint] NULL,
CONSTRAINT [fit_id] PRIMARY KEY CLUSTERED
(
[fit_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER TABLE [dbo].[tbl_Fit] WITH CHECK ADD CONSTRAINT [FK_tbl_Fit_Category_List] FOREIGN KEY([list_id])
REFERENCES [dbo].[Category_List] ([list_id])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[tbl_Fit] CHECK CONSTRAINT [FK_tbl_Fit_Category_List]
GO
ALTER TABLE [dbo].[tbl_Fit] WITH CHECK ADD CONSTRAINT [FK_tbl_Fit_Products] FOREIGN KEY([product_id])
REFERENCES [dbo].[Products] ([ProductID])
GO
ALTER TABLE [dbo].[tbl_Fit] CHECK CONSTRAINT [FK_tbl_Fit_Products]

3.main table this table record show
-----------------------------------------------------------------------------
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Products](
[ProductID] [bigint] IDENTITY(1,1) NOT NULL,
[ProductName] [nvarchar](100) COLLATE Latin1_General_CI_AI NULL,
[Description] [nvarchar](max) COLLATE Latin1_General_CI_AI NULL,
[Long_Description] [nvarchar](max) COLLATE Latin1_General_CI_AI NULL,
[CategoryID] [bigint] NULL,
[list_id] [bigint] NULL,
[category] [nvarchar](50) COLLATE Latin1_General_CI_AI NULL,
[best_seller_count] [int] NULL,
CONSTRAINT [PK_dbo.Products] PRIMARY KEY CLUSTERED
(
[ProductID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER TABLE [dbo].[Products] WITH CHECK ADD CONSTRAINT [FK_Products_Category_List] FOREIGN KEY([list_id])
REFERENCES [dbo].[Category_List] ([list_id])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[Products] CHECK CONSTRAINT [FK_Products_Category_List]
-------------------------------------------------------------------------------
and two table are filter record which are selected record show to product
Posted

1 solution

SQL
SELECT whatever, columns, you, need
FROM
PRODUCTS p
INNER JOIN tbl_Fit f ON p.productId = f.product_id
INNER JOIN tbl_Size s ON p.productId = s.product_id 
WHERE
(size = @size OR @size IS NULL)
AND
(fit = @fit OR @fit IS NULL)


1. Use LEFT instead of INNER join if there are products without fit / size entries
2. If you call one table Products, call others Size and Fit or rename Products to tbl_Products, it is bad practice to mix two naming conventions - same for ProductId / product_id field names - name them the same.
3. @size and @fit are parameters you can fill in with particular values, the query will select by both, one or none depending on what you send in. If you send some neutral value (such as -1 or maybe 0) you should have SET @fit = NULLIF(@fit, -1) in your stored procedure
4. add ORDER BY by whatever your needs are at the end
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900