[Webinar] Streamline your web hosting managementRegister Today

x
?
Solved

Delete Items in Child table according to a field in Parent table in SQL

Posted on 2008-02-03
20
Medium Priority
?
223 Views
Last Modified: 2011-10-19
I need help with an SQL query
I have 2 tables equipment and items they have one to many relationship

Equipment table has a field called Qty Ordered the count of items in items table should not increase more than qty ordered in equipment table.

So when I do a query like this (what Nathan did/also a view)

SELECT     MarkNo, ItemDifference
FROM         (SELECT     dbo.Equipment.MarkNo, COUNT(dbo.Items.ItemBarcode) - (CASE WHEN QtyOrdered IS NOT NULL THEN QtyOrdered ELSE 0 END) AS ItemDifference
                       FROM          dbo.Equipment INNER JOIN
                                              dbo.Items ON dbo.Equipment.MarkNo = dbo.Items.MarkNo
                       GROUP BY dbo.Equipment.MarkNo, dbo.Equipment.QtyOrdered) AS Sub
WHERE     (ItemDifference > 1)
It gives me all the Mark No in items table which have Qty Ordered in Equipment (Parent Table) more than item count
What I want to do is to delete any access
Inother words if Count of Items is more than Qty Ordered in Equipment table then delete the excess or differnce from the items table basically to make Qty Ordered in Equipment table <= count of Items table for that Mark No
0
Comment
Question by:saleemz
20 Comments
 
LVL 60

Expert Comment

by:chapmandew
ID: 20811772
I would love to help you, but I am not 100% sure I understand what you are asking.  Is it possible for you to give me a data example for what you need?  I will work you through this.

Tim
0
 
LVL 34

Expert Comment

by:Brian Crowe
ID: 20816905
It seems to me that this issue should be handled at the application level or at the very least in a InsertItems stored procedure.  How are these inserts being made?
0
 

Author Comment

by:saleemz
ID: 20819564
Thanks BriCrowe I am working on sorting this issue out in the application. But the items are already inserted,i want to clean up the data before i install my new release of the application which has this issue fixed.
0
Learn to develop an Android App

Want to increase your earning potential in 2018? Pad your resume with app building experience. Learn how with this hands-on course.

 
LVL 35

Expert Comment

by:David Todd
ID: 20819600
Hi,

As Tim asked, can we see some sample data - raw input, and either what you want left or what you want deleted. I'd like structure or defiition or both tables as well please.

Cheers
  David
0
 

Author Comment

by:saleemz
ID: 20819695
Thanks David how do you want me to post it here. Whats the best way can i run a query or a function to do that
0
 
LVL 35

Expert Comment

by:David Todd
ID: 20819717
Hi,

Posting:
Attach the query and data as a code snippet.

Data:
select top 20 *
from dbo.Equipment

select top 20 *
from dbo.Items

Structure:
execute sp_help equipment

execute sp_help items

You may need to hand edit these results so they match

Cheers
  David
0
 

Author Comment

by:saleemz
ID: 20819882
Here is the Data I will put the structure in the next post to make it easier to read

MarkNo                         FAB         ShortDescription     Description                                                                                                                                                                                                                                                     Category    UOM  UOMValue                                Rev         Length      DrawingNo                      Weight      QtyOrdered  BuildingLocation AreaLocation FacilityLocation RequiredOnSiteDate      HazardCategory Code                                               AuditUser  AuditDateTime
------------------------------ ----------- -------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------- ---- --------------------------------------- ----------- ----------- ------------------------------ ----------- ----------- ---------------- ------------ ---------------- ----------------------- -------------- -------------------------------------------------- ---------- -----------------------
C1100                          3           FLATBAR FITTING      NULL                                                                                                                                                                                                                                                            1           EA   1.00                                    NULL        NULL        NULL                           1           22          7                101          NULL             NULL                    98                                                                Casey      2007-09-22 15:24:40.720
CB300                          99          PIPE DUCTING         N/A                                                                                                                                                                                                                                                             3           NULL 1.00                                    NULL        3500        NULL                           70          1           1                2            NULL             NULL                    101            NULL                                               NULL       NULL
CB300-00-D0061                 2           FITTING              FITTING                                                                                                                                                                                                                                                         1           EA   1.00                                    NULL        NULL        NULL                           32          16          1                101          NULL             NULL                    98                                                                Casey      2007-10-19 07:40:04.933
CB300-00-D1126                 2           FITTING              FITTING                                                                                                                                                                                                                                                         1           EA   1.00                                    NULL        NULL        NULL                           4           2           1                101          NULL             NULL                    98                                                                Casey      2007-10-19 07:40:41.137
CB300-00-D1167                 2           FITTING              FITTING                                                                                                                                                                                                                                                         1           EA   1.00                                    NULL        NULL        NULL                           2           1           1                101          NULL             NULL                    98                                                                Casey      2007-10-19 07:40:58.120
CB300-00-D1173                 2           FITTING              FITTING                                                                                                                                                                                                                                                         1           EA   1.00                                    NULL        NULL        NULL                           2           1           1                101          NULL             NULL                    98                                                                Casey      2007-10-19 07:41:20.993
CB300-00-D1589                 2           FITTING              FITTING                                                                                                                                                                                                                                                         1           EA   1.00                                    NULL        0           NULL                           2           1           1                101          NULL             NULL                    98                                                                Casey      2007-10-19 07:41:41.353
CB300-00-D1638                 2           FITTING              FITTING                                                                                                                                                                                                                                                         1           EA   1.00                                    NULL        NULL        NULL                           2           1           1                101          NULL             NULL                    98                                                                Casey      2007-10-19 07:42:21.900
CB300-00-D1645                 2           FITTING              FITTING                                                                                                                                                                                                                                                         1           EA   1.00                                    NULL        NULL        NULL                           32          16          1                101          NULL             NULL                    98                                                                Casey      2007-10-19 07:42:38.760
CB300-00-D1647                 2           FITTING              FITTING                                                                                                                                                                                                                                                         1           EA   1.00                                    NULL        NULL        NULL                           42          21          1                101          NULL             NULL                    98                                                                Casey      2007-10-19 07:42:59.010
CB300-01-0100                  2           BEAM                 beam                                                                                                                                                                                                                                                            1           MT   0.29                                    0           3075        CB300-01-0100                  293         1           1                101          1                NULL                    98             DAAB                                               ZZ-Update1 2007-09-29 12:22:13.280
CB300-01-0101                  2           ANGLE                ANGLE                                                                                                                                                                                                                                                           1           MT   0.08                                    1           1050        CB300-01-0101                  88          8           1                101          1                NULL                    98             DAAA                                               ZZ-Update1 2007-11-27 16:50:56.523
CB300-01-0102                  2           COLUMN               Column                                                                                                                                                                                                                                                          1           MT   0.12                                    0           1500        CB300-01-0102                  121         8           1                101          1                NULL                    98             DAAA                                               ZZ-Update1 2007-09-29 12:22:15.733
CB300-01-0103                  2           COLUMN               Column                                                                                                                                                                                                                                                          1           MT   0.14                                    0           1500        CB300-01-0103                  140         8           1                101          1                NULL                    98             DAAA                                               ZZ-Update1 2007-09-29 12:22:15.797
CB300-01-0104                  2           BEAM                 beam                                                                                                                                                                                                                                                            1           MT   0.29                                    0           2990        CB300-01-0104                  290         5           1                101          1                NULL                    98             DAAB                                               ZZ-Update1 2007-09-29 12:22:15.843
CB300-01-0105                  2           BEAM                 beam                                                                                                                                                                                                                                                            1           MT   0.30                                    0           2990        CB300-01-0105                  303         1           1                101          1                NULL                    98             DAAB                                               ZZ-Update1 2007-09-29 12:22:15.877
CB300-01-0106                  2           BEAM                 beam                                                                                                                                                                                                                                                            1           MT   0.30                                    0           3340        CB300-01-0106                  305         1           1                101          1                NULL                    98             DAAB                                               ZZ-Update1 2007-09-29 12:22:15.923
CB300-01-0107                  2           BEAM                 beam                                                                                                                                                                                                                                                            1           MT   0.29                                    0           2990        CB300-01-0107                  290         1           1                101          1                NULL                    98             DAAB                                               ZZ-Update1 2007-09-29 12:22:15.970
CB300-01-0108                  2           BEAM                 beam                                                                                                                                                                                                                                                            1           MT   0.29                                    0           2990        CB300-01-0108                  291         1           1                101          1                NULL                    98             DAAB                                               ZZ-Update1 2007-09-29 12:22:16.017
CB300-01-0109                  2           STAIR                Stair                                                                                                                                                                                                                                                           1           MT   0.32                                    0           1349        CB300-01-0109                  326         1           1                101          1                NULL                    98             DAAB                                               ZZ-Update1 2007-09-29 12:22:16.047

(20 row(s) affected)

ItemBarcode                             MarkNo                         StorageLocation DocketNo                                           PackingListNo        ConsignmentNo        CompletionStatus RequestedBy RequestDate             ReceivedBy ReceivedDate            IssuedDate              IssuedBy   InstalledDate           InstalledBy                                        GRL                                                GPSLat                                             GPSLong                                            WBS                                                WorkPack    CompletionDate          MRF                            AuditUser  AuditDateTime
--------------------------------------- ------------------------------ --------------- -------------------------------------------------- -------------------- -------------------- ---------------- ----------- ----------------------- ---------- ----------------------- ----------------------- ---------- ----------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------- ----------------------- ------------------------------ ---------- -----------------------
7278054                                 CB300-01-0100                  NULL            NULL                                               NULL                 NULL                 0                Owen        2007-07-31 00:00:00.000 Stuart     2007-05-13 00:00:00.000 2007-07-11 00:00:00.000 Stuart     2007-08-02 00:00:00.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           NULL       NULL
7278055                                 CB300-01-0101                  NULL            NULL                                               NULL                 NULL                 0                Owen        2007-08-19 00:00:00.000 Stuart     2007-08-17 17:06:33.143 2007-08-20 00:00:00.000 Stuart     2007-08-21 00:00:00.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Ralph      2007-08-22 15:19:03.483
7278056                                 CB300-01-0101                  NULL            NULL                                               NULL                 NULL                 NULL             Owen        2007-08-19 16:37:22.000 Stuart     2007-08-17 17:06:34.287 2007-09-03 14:39:09.303 Stuart     2007-10-24 11:57:24.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Z - C45    2007-11-01 12:03:17.350
7278057                                 CB300-01-0101                  NULL            NULL                                               NULL                 NULL                 NULL             Owen        2007-08-19 16:37:22.000 Stuart     2007-08-17 17:06:35.300 2007-09-03 14:39:09.303 Stuart     2007-10-24 11:57:24.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Z - C45    2007-11-01 12:03:23.227
7278058                                 CB300-01-0101                  NULL            NULL                                               NULL                 NULL                 NULL             Owen        2007-08-19 16:37:22.000 Stuart     2007-08-17 17:06:36.270 2007-09-03 14:39:09.303 Stuart     2007-10-24 11:57:24.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Z - C45    2007-11-01 12:03:19.257
7278059                                 CB300-01-0101                  NULL            NULL                                               NULL                 NULL                 NULL             Owen        2007-08-19 16:37:22.000 Stuart     2007-08-17 17:06:37.143 2007-09-03 14:39:09.303 Stuart     2007-10-24 11:57:24.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Z - C45    2007-11-01 12:03:25.697
7278060                                 CB300-01-0101                  NULL            NULL                                               NULL                 NULL                 NULL             Owen        2007-08-19 16:37:22.000 Stuart     2007-08-17 17:06:38.037 2007-09-03 14:39:09.303 Stuart     2007-10-24 11:57:24.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Z - C45    2007-11-01 12:03:28.600
7278061                                 CB300-01-0101                  NULL            NULL                                               NULL                 NULL                 NULL             Owen        2007-08-19 16:37:22.000 Stuart     2007-08-17 17:06:38.910 2007-09-03 14:39:09.303 Stuart     2007-10-24 11:57:24.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Z - C45    2007-11-01 12:03:32.133
7278062                                 CB300-01-0101                  NULL            NULL                                               NULL                 NULL                 NULL             Owen        2007-08-19 16:37:22.000 Stuart     2007-08-17 17:06:39.800 2007-09-03 14:39:09.303 Stuart     2007-10-24 11:57:24.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Z - C45    2007-11-01 12:03:35.320
7278063                                 CB300-01-0102                  NULL            NULL                                               NULL                 NULL                 0                Owen        2007-07-21 00:00:00.000 NULL       2007-05-13 00:00:00.000 2007-07-27 00:00:00.000 NULL       2007-10-24 11:57:24.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Z - C45    2007-11-01 12:04:10.523
7278064                                 CB300-01-0102                  NULL            NULL                                               NULL                 NULL                 0                Owen        2007-07-21 00:00:00.000 NULL       2007-05-13 00:00:00.000 2007-07-25 00:00:00.000 NULL       2007-10-24 11:57:24.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Z - C45    2007-11-01 12:04:12.523
7278065                                 CB300-01-0102                  NULL            NULL                                               NULL                 NULL                 0                Owen        2007-08-21 00:00:00.000 NULL       2007-05-13 00:00:00.000 2007-07-25 00:00:00.000 NULL       2007-10-24 11:57:24.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Z - C45    2007-11-01 12:04:14.803
7278066                                 CB300-01-0102                  NULL            NULL                                               NULL                 NULL                 0                Owen        2007-07-21 00:00:00.000 NULL       2007-05-13 00:00:00.000 2007-07-25 00:00:00.000 NULL       2007-10-24 11:57:24.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Z - C45    2007-11-01 12:04:17.900
7278067                                 CB300-01-0102                  NULL            NULL                                               NULL                 NULL                 0                Owen        2007-07-21 00:00:00.000 NULL       2007-05-13 00:00:00.000 2007-07-25 00:00:00.000 NULL       2007-10-24 11:57:24.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Z - C45    2007-11-01 12:04:22.553
7278068                                 CB300-01-0102                  NULL            NULL                                               NULL                 NULL                 0                Owen        2007-07-21 00:00:00.000 NULL       2007-05-13 00:00:00.000 2007-07-25 00:00:00.000 NULL       2007-10-24 11:57:24.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Z - C45    2007-11-01 12:04:24.350
7278069                                 CB300-01-0102                  NULL            NULL                                               NULL                 NULL                 0                Owen        2007-07-21 00:00:00.000 NULL       2007-05-13 00:00:00.000 2007-07-25 00:00:00.000 NULL       2007-10-24 11:57:24.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Z - C45    2007-11-01 12:04:26.367
7278070                                 CB300-01-0102                  NULL            NULL                                               NULL                 NULL                 0                Owen        2007-07-21 00:00:00.000 NULL       2007-05-13 00:00:00.000 2007-07-25 00:00:00.000 NULL       2007-10-24 11:57:24.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Z - C45    2007-11-01 12:04:29.523
7278071                                 CB300-01-0103                  NULL            NULL                                               NULL                 NULL                 0                Owen        2007-07-21 00:00:00.000 NULL       2007-05-13 00:00:00.000 2007-07-25 00:00:00.000 NULL       2007-10-24 11:57:24.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Z - C45    2007-11-01 12:04:59.350
7278072                                 CB300-01-0103                  NULL            NULL                                               NULL                 NULL                 0                Owen        2007-07-21 00:00:00.000 NULL       2007-05-13 00:00:00.000 2007-07-25 00:00:00.000 NULL       2007-10-24 11:57:24.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Z - C45    2007-11-01 12:05:01.290
7278073                                 CB300-01-0103                  NULL            NULL                                               NULL                 NULL                 0                Owen        2007-07-21 00:00:00.000 NULL       2007-05-13 00:00:00.000 2007-07-25 00:00:00.000 NULL       2007-10-24 11:57:24.000 Owen                                               Crushing Building                                  NULL                                               NULL                                               NULL                                               NULL        NULL                    NULL                           Z - C45    2007-11-01 12:05:06.117

(20 row(s) affected)



0
 

Author Comment

by:saleemz
ID: 20819889
the above look shocking - sorry guys I will post it again
0
 

Author Comment

by:saleemz
ID: 20820000
Please see attached excel for data

DB-Sample-data-for-Equip-and-Ite.xls
0
 

Author Comment

by:saleemz
ID: 20820010
please see attache table definition
Please make sure to turn of word wrap if using notepad makes it easier to read

DB-Definitiopn-for-Equ-and-Item-.txt
0
 
LVL 35

Expert Comment

by:David Todd
ID: 20820375
Hi,

Snippet illustrates solution.

I added a few rows (9) to Items for MarkNo 'CB300-01-0103', as your example didn't have any items that would fail the test of having more rows than quantity ordered.

HTH
  David

use tempdb
go
 
if object_id( N'tempdb..#Equip', N'U' ) is not null 
	drop table #Equip;
	
create table #Equip 
	(
	MarkNo varchar( 20 )
	, QtyOrdered int
	)
	
insert #Equip( MarkNo, QtyOrdered )
select 'CB300-01-0100', 1
union all select 'CB300-01-0101', 8
union all select 'CB300-01-0102', 8
union all select 'CB300-01-0103', 8
union all select 'CB300-01-0104', 5
 
select *
from #Equip
 
if object_id( N'tempdb..#Items', N'U' ) is not null 
	drop table #Items;
	
create table #Items 
	(
	ItemBarcode int
	, MarkNo varchar( 20 )
	)
	
insert #Items( ItemBarcode, MarkNo )
select 7278054, 'CB300-01-0100'
union all select 7278055, 'CB300-01-0101'
union all select 7278056, 'CB300-01-0101'
union all select 7278057, 'CB300-01-0101'
union all select 7278058, 'CB300-01-0101'
union all select 7278059, 'CB300-01-0101'
union all select 7278060, 'CB300-01-0101'
union all select 7278061, 'CB300-01-0101'
union all select 7278062, 'CB300-01-0101'
union all select 7278063, 'CB300-01-0102'
union all select 7278064, 'CB300-01-0102'
union all select 7278065, 'CB300-01-0102'
union all select 7278066, 'CB300-01-0102'
union all select 7278067, 'CB300-01-0102'
union all select 7278068, 'CB300-01-0102'
union all select 7278069, 'CB300-01-0102'
union all select 7278070, 'CB300-01-0102'
union all select 7278071, 'CB300-01-0103'
union all select 7278072, 'CB300-01-0103'
union all select 7278073, 'CB300-01-0103'
union all select 7278074, 'CB300-01-0103'
union all select 7278075, 'CB300-01-0103'
union all select 7278076, 'CB300-01-0103'
union all select 7278077, 'CB300-01-0103'
union all select 7278078, 'CB300-01-0103'
union all select 7278079, 'CB300-01-0103'
union all select 7278080, 'CB300-01-0103'
union all select 7278081, 'CB300-01-0103'
union all select 7278082, 'CB300-01-0103'
 
select *
from #Items
 
print 'Solution starts here'
 
select 
	i.MarkNo
	, count( * )
from #Items i
group by 
	i.MarkNo
	
-- select showing the rows we have, plus a row number
select 
	i.MarkNo
	, i.ItemBarcode
	, (
	select count( * )
	from #Items ii
	where 
		ii.MarkNo = i.MarkNo
		and ii.ItemBarcode < i.ItemBarcode
	)
from #Items i
 
-- select showing the rows we don't want
select 
	ij.MarkNo
	, ij.ItemBarcode
from #Equip e
left outer join 
	(
	select 
		i.MarkNo
		, i.ItemBarcode
		, (
		select count( * )
		from #Items ii
		where 
			ii.MarkNo = i.MarkNo
			and ii.ItemBarcode < i.ItemBarcode
		) c
	from #Items i
	) ij
	on ij.MarkNo = e.MarkNo
where ij.c >= e.QtyOrdered
 

Open in new window

0
 

Author Comment

by:saleemz
ID: 20829404
Thanks David
it works fine.
Can I remove them from one table and put them in one temp table
0
 
LVL 35

Accepted Solution

by:
David Todd earned 2000 total points
ID: 20835161
Hi,

Code below ...

Cheers
  David
-- select showing the rows we don't want
select 
	ij.MarkNo
	, ij.ItemBarcode
from #Equip e
left outer join 
	(
	select 
		i.MarkNo
		, i.ItemBarcode
		, (
		select count( * )
		from #Items ii
		where 
			ii.MarkNo = i.MarkNo
			and ii.ItemBarcode < i.ItemBarcode
		) c
	from #Items i
	) ij
	on ij.MarkNo = e.MarkNo
where ij.c >= e.QtyOrdered
 
-- select showing the rows we don't want, 
-- selecting them into another temp table ... 
-- note that table must not already exist etc.
if object_id( N'tempdb..#SomeOtherTable', N'U' ) is not null 
	drop table #SomeOtherTable;
	
select 
	ij.MarkNo
	, ij.ItemBarcode
into #SomeOtherTable
from #Equip e
left outer join 
	(
	select 
		i.MarkNo
		, i.ItemBarcode
		, (
		select count( * )
		from #Items ii
		where 
			ii.MarkNo = i.MarkNo
			and ii.ItemBarcode < i.ItemBarcode
		) c
	from #Items i
	) ij
	on ij.MarkNo = e.MarkNo
where ij.c >= e.QtyOrdered
 
-- select showing the rows we don't want
-- changed to delete
-- test first
-- delete the rows we don't want
delete iii
from #Items iii
where 
	iii.ItemBarcode in
	(
	select 
		ij.ItemBarcode
	from #Equip e
	left outer join 
		(
		select 
			i.MarkNo
			, i.ItemBarcode
			, (
			select count( * )
			from #Items ii
			where 
				ii.MarkNo = i.MarkNo
				and ii.ItemBarcode < i.ItemBarcode
			) c
		from #Items i
		) ij
		on ij.MarkNo = e.MarkNo
	where ij.c >= e.QtyOrdered
	)

Open in new window

0
 

Author Comment

by:saleemz
ID: 20836401
David you have equipment table marked as #Equip and items table as #items
is there a reason you put #.

Thanks for your help
0
 
LVL 35

Expert Comment

by:David Todd
ID: 20836735
Hi,

>> the hash (#) sign in table names

The reason is that they are temp tables, and will be deleted when the connection ends. (The Hash indicates a temp table, the double hash indicates a global temp table.)

That is, I've written a script that will be safe to experiement with on a test system (ie mine) without needed a lot of clean-up afterwards.

I've also picked up the habit of doing all the above in tempdb, and so a restart of SQL will clean things up as well.

For deployment, you'll need to change the names as appropriate.

Cheers
  David
0
 

Author Comment

by:saleemz
ID: 20917687
Hello Dtodd (David)

I need a little adjustment in your solution will you be able to help

Compare Qty Ordered in Equipment table with Count of items in Items Table where Area Location is 102
I have set Area location to 102 where I have imported the files from CSV files I only need to compare these items

If Qty Ordered in Equipment table >= Count of items in Items Table then Do nothing
If Qty Ordered in Equipment table < Count of items in Items Table then update the Consignment No in items table to Extra item-Please Delete

This way I can generate a query and delete these items by myself.
Thanks
0
 
LVL 35

Expert Comment

by:David Todd
ID: 20923247
Hi,

I'm a little unclear as to what you are asking.

1.
I can't find an AreaLocation field in your items data - there is a StorageLocation. OTH there is a AreaLocation in the Eqiupment data.

2.
If the Area location is 102 - set when you import from CSV files, then are all rows set with Area location = 102? So what has changed/what is different?

3.
update Consignment No to 'Extra item - Please Delete'

See snippet

4.
This should have been in another question

Cheers
  David
use tempdb
go
 
if object_id( N'tempdb..#Equip', N'U' ) is not null 
	drop table #Equip;
	
create table #Equip 
	(
	MarkNo varchar( 20 )
	, QtyOrdered int
	)
	
insert #Equip( MarkNo, QtyOrdered )
select 'CB300-01-0100', 1
union all select 'CB300-01-0101', 8
union all select 'CB300-01-0102', 8
union all select 'CB300-01-0103', 8
union all select 'CB300-01-0104', 5
 
select *
from #Equip
 
if object_id( N'tempdb..#Items', N'U' ) is not null 
	drop table #Items;
	
create table #Items 
	(
	ItemBarcode int
	, MarkNo varchar( 20 )
	, ConsignmentNo varchar( 30 )
	)
	
insert #Items( ItemBarcode, MarkNo, ConsignmentNo )
select 7278054, 'CB300-01-0100', '0'
union all select 7278055, 'CB300-01-0101', '0'
union all select 7278056, 'CB300-01-0101', '0'
union all select 7278057, 'CB300-01-0101', '0'
union all select 7278058, 'CB300-01-0101', null
union all select 7278059, 'CB300-01-0101', null
union all select 7278060, 'CB300-01-0101', null
union all select 7278061, 'CB300-01-0101', null
union all select 7278062, 'CB300-01-0101', null
union all select 7278063, 'CB300-01-0102', null
union all select 7278064, 'CB300-01-0102', null
union all select 7278065, 'CB300-01-0102', '0'
union all select 7278066, 'CB300-01-0102', '0'
union all select 7278067, 'CB300-01-0102', '0'
union all select 7278068, 'CB300-01-0102', '1'
union all select 7278069, 'CB300-01-0102', '1'
union all select 7278070, 'CB300-01-0102', '1'
union all select 7278071, 'CB300-01-0103', '1'
union all select 7278072, 'CB300-01-0103', '1'
union all select 7278073, 'CB300-01-0103', '2'
union all select 7278074, 'CB300-01-0103', '2'
union all select 7278075, 'CB300-01-0103', '2'
union all select 7278076, 'CB300-01-0103', '2'
union all select 7278077, 'CB300-01-0103', '3'
union all select 7278078, 'CB300-01-0103', '3'
union all select 7278079, 'CB300-01-0103', '3'
union all select 7278080, 'CB300-01-0103', '3'
union all select 7278081, 'CB300-01-0103', '3'
union all select 7278082, 'CB300-01-0103', '3'
 
select *
from #Items
 
print 'Solution starts here'
 
-- select showing the rows we don't want
select 
	ij.MarkNo
	, ij.ItemBarcode
from #Equip e
left outer join 
	(
	select 
		i.MarkNo
		, i.ItemBarcode
		, (
		select count( * )
		from #Items ii
		where 
			ii.MarkNo = i.MarkNo
			and ii.ItemBarcode < i.ItemBarcode
		) c
	from #Items i
	) ij
	on ij.MarkNo = e.MarkNo
where ij.c >= e.QtyOrdered
 
-- update
update ik
set ik.ConsignmentNo = 'Extra Item - Please Delete'
from #Equip e
left outer join 
	(
	select 
		i.MarkNo
		, i.ItemBarcode
		, (
		select count( * )
		from #Items ii
		where 
			ii.MarkNo = i.MarkNo
			and ii.ItemBarcode < i.ItemBarcode
		) c
	from #Items i
	) ij
	on ij.MarkNo = e.MarkNo
inner join #Items ik
	on ik.MarkNo = ij.MarkNo
	and ik.ItemBarcode = ij.ItemBarcode
where ij.c >= e.QtyOrdered
 
select *
from #Items

Open in new window

0
 

Author Comment

by:saleemz
ID: 20923672
David I will submit this as a seperate question now
0
 
LVL 35

Expert Comment

by:David Todd
ID: 20923755
Hi,

Cool.

Can you add a note here when you have submitted it, maybe add a link as well?

Cheers
  David
0
 

Author Comment

by:saleemz
ID: 20923826
done now
question title "Need to update a field in a child table in SQL by comoaring the field in parent table and count of child table"
http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/Q_23172681.html
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article shows gives you an overview on SQL Server 2016 row level security. You will also get to know the usages of row-level-security and how it works
Ready to get certified? Check out some courses that help you prepare for third-party exams.
This videos aims to give the viewer a basic demonstration of how a user can query current session information by using the SYS_CONTEXT function
SQL Database Recovery Software repairs the MDF & NDF Files, corrupted due to hardware related issues or software related errors. Provides preview of recovered database objects and allows saving in either MSSQL, CSV, HTML or XLS format. Ensures recov…

607 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question