2013-05-28 43 views
0

嗨我有一個問題提交到數據庫。我對Firebird SQL非常陌生。但我有一個查詢創建一個表,然後提交它,然後插入它,提交它,查看數據,刪除表,然後再次提交。我試圖動態地做到這一點,我可以一次點擊執行按鈕,它只是貫穿始終。有沒有辦法做到這一點?這是查詢。如何創建表然後提交然後插入然後提交和刪除表?

create table bp_customCollections(
     part_number varchar(255) 
     ,part_description varchar(255) 
     ,guided_reading_level varchar(255) 
     ,lexile_level varchar(255) 
     ,nonfiction_fiction varchar(255) 
     ,on_hand varchar(255) 
     ,default_vendor varchar(255) 
     ,language varchar(255) 
     ,product_price varchar(255) 
     ) 

commit 

insert into bp_customcollections(part_number, part_description,guided_reading_level,lexile_level,nonfiction_fiction, on_hand, default_vendor,language,product_price) 
SELECT DISTINCT 
part.num 
,part.description 
,COALESCE(grlmin.info,'Undefined') 
,getLexile.lexile_level 
,COALESCE(fnf.info,'') 
,SUM(tag.qty) 
,vendor.name 
,customvarcharlong.info 
,cast(product.price as decimal(10,2)) 

FROM PART 

LEFT JOIN customset AS grlmin ON grlmin.recordid = part.id AND grlmin.customfieldid = 51 -- guided reading level minimum 
LEFT JOIN getLexile on getLexile.lexile_partid = part.id and getLexile.lexile_partid = 61 -- lexile level 
LEFT JOIN vendorparts on vendorparts.partid = part.id 
LEFT JOIN vendor on vendor.id = vendorparts.vendorid 
LEFT JOIN customset AS fnf on fnf.recordid = part.id AND fnf.customfieldid = 47 -- fiction/nofiction 
LEFT JOIN tag on part.id = tag.partid 
LEFT JOIN customvarcharlong on customvarcharlong.recordid = part.id and customvarcharlong.customfieldid = 56 -- language 
LEFT JOIN product on product.partid = part.id 
LEFT JOIN customset as resourceType on resourcetype.recordid = part.id 
where vendorparts.defaultflag = 1 
and resourcetype.info = 'Book' 
GROUP BY part.num,part.description, COALESCE(grlmin.info,'Undefined'), COALESCE(fnf.info,''),getLexile.lexile_level, vendor.name, customvarcharlong.info,product.price 
HAVING SUM(tag.qty) > 0 

commit 


select * from bp_customcollections 
order by part_number 

drop table bp_customCollections 
commit 
+0

你爲什麼不只是運行選擇查詢? –

+0

聽起來有點無用或至少太複雜,你爲什麼要這樣做? –

回答

1

創建一個視圖會不會更容易,然後在需要時選擇它?

create view vw_customCollections as 
SELECT DISTINCT 
part.num 
,part.description 
,COALESCE(grlmin.info,'Undefined') 
,getLexile.lexile_level 
,COALESCE(fnf.info,'') 
,SUM(tag.qty) 
,vendor.name 
,customvarcharlong.info 
,cast(product.price as decimal(10,2)) 
FROM PART 
LEFT JOIN customset AS grlmin ON grlmin.recordid = part.id AND grlmin.customfieldid = 51 -- guided reading level minimum 
LEFT JOIN getLexile on getLexile.lexile_partid = part.id and getLexile.lexile_partid = 61 -- lexile level 
LEFT JOIN vendorparts on vendorparts.partid = part.id 
LEFT JOIN vendor on vendor.id = vendorparts.vendorid 
LEFT JOIN customset AS fnf on fnf.recordid = part.id AND fnf.customfieldid = 47 -- fiction/nofiction 
LEFT JOIN tag on part.id = tag.partid 
LEFT JOIN customvarcharlong on customvarcharlong.recordid = part.id and customvarcharlong.customfieldid = 56 -- language 
LEFT JOIN product on product.partid = part.id 
LEFT JOIN customset as resourceType on resourcetype.recordid = part.id 
where vendorparts.defaultflag = 1 
and resourcetype.info = 'Book' 
GROUP BY part.num,part.description, COALESCE(grlmin.info,'Undefined'), COALESCE(fnf.info,''),getLexile.lexile_level, vendor.name, customvarcharlong.info,product.price 
HAVING SUM(tag.qty) > 0 

則:

select * 
from vw_customCollections 
order by part_number 
相關問題