① 求一sql語句
例如表名為:procts_tj
SELECT A.TIME,A.NAME,B.procts
FROM (
SELECT MAX(time) AS TIME
,name AS NAME
FROM procts_tj
GROUP BY name )A
LEFT JOIN procts_tj B
ON A.TIME = B.TIME
AND A.NAME = B.NAME
WHERE 1 = 1
ORDER BY NAME DEC
基本上就是這樣了,先找到最大日期,然後後面的再補充
② 求一條SQL語句
SELECT H.Pcd_Id,D.Pcd_Pro_Id,D.Pcd_Price,D.Pcd_GetIn_Num,H.Pch_Check_Date
FROM Proct_Check_Head H JOIN Proct_Check_Detail D ON H.Pcd_Id = D.Pcd_Id
JOIN(
SELECT D.Pcd_Pro_Id,MAX(M.Pch_Check_Date) AS Pch_Check_Date
FROM Proct_Check_Head H JOIN Proct_Check_Detail D ON H.Pcd_Id = D.Pcd_Id
GROUP BY D.Pcd_Pro_Id
) AS T ON D.Pcd_Pro_Id = T.Pcd_Pro_Id AND H.Pch_Check_Date = T.Pch_Check_Date
我也是做進銷存系統的,QQ:316784428
SQL愛好者,技術相互交流!
③ 求一條SQL語句
這個是用動態SQL實現的
declare
v_sql varchar2(4000);
cursor c is select id from temp_006 order by id asc;
cursor d is select column_name from user_tab_cols where table_name like 'TEMP_006' order by column_id desc;
v_id varchar2(10);
v_col varchar2(50);
begin
v_sql:='select ';
open d;
fetch d into v_col;
v_sql:=v_sql||''''||v_col||''' as ';
fetch d into v_col;
v_sql:=v_sql||v_col;
close d;
open c;
loop
fetch c into v_id;
exit when c%notfound;
v_sql:=v_sql||',(select va from temp_006 where id ='||v_id||') as "'||v_id||'"';
end loop;
close c;
v_sql:=v_sql||' from al';
dbms_output.put_line(v_sql);
end;
執行這個塊生成一句SQL,執行下就能得出你要的結果.
ps:有些過程看起來很簡單,但是程序實現卻特別復雜,這個是由於關系資料庫的底層結構所決定的,所以我們要盡量揚長避短,如果有其他方式可以簡單實現的話(如excel的行列轉換)就別用這種復雜的方法.
④ 求一條SQL語句
是否能確保B表中的名字在A表中是唯一的
如果可以的話
updatebsetid=(selectidfromawherea.name=b.name)
⑤ 求一條SQL語句
套用上面回答者的甲骨文的sql語句:在ms-sql中 isnull()函數可以代替oracle的nvl()函數即可。改為ms-sql為:
select distinct t1.貨品資料, isnull( t1.出庫編號, t2.出庫編號) as 出庫編號,isnull(t1.入庫編號,t2.入庫編號) as 入庫編號 from Table t1, Table t2 where t1.貨品資料=t2.貨品資料and isnull(t1.出庫編號,t2.出庫編號) is not null and isnull(t1.入庫編號,t2.入庫編號) is not null
⑥ 求一條sql語句
select a.processtype,a.日期,sum(a.數量) from
(select processtype,to_char(edite,'YYYYMMDD') 日期,count(1) 數量 from itf_zytb_exch group by processtype,to_char(edite,'YYYYMMDD')) a,
(select processtype,to_char(edite,'YYYYMMDD') 日期,count(1) 數量 from itf_zytb_exch group by processtype,to_char(edite,'YYYYMMDD')) b
where a.processtype=b.processtype
and a.日期>=b.日期
group by a.processtype,a.日期;
說明一下:把你上邊寫的查詢當成兩個查詢,如果第二個查詢的日期小於等於第一個查詢,並且名字一樣的話,就把之前的天數的值相加
還有一個,你最後要的結果好像少了一行
⑦ 求一條SQL語句
sql="select * from A表 where type_id="&Request.QueryString("id")
sql="select * from B表 where type_id="&Request.QueryString("id")
sql="select * from C表 where type_id="&Request.QueryString("id")
⑧ 求一條sql語句
select b.orders_id from orders as a , orderinf as b where a.orders_id=b.orders_id and a.status=1 group by b.orders_id having sum(sorting_state)=0
⑨ 求一條sql語句
語句如下:
insert into member(id,avatar2,avatar3,avatar4)
SELECT aa.memberid ,
MAX(CASE WHEN aa.num = 1 THEN aa.pic ELSE 0 END ) avatar2,
MAX(CASE WHEN aa.num = 2 THEN aa.pic ELSE 0 END ) avatar3,
MAX(CASE WHEN aa.num = 3 THEN aa.pic ELSE 0 END ) avatar4
FROM (select (@num := @num+1) as num, memberid,pic from moment,
(select @num := 0) as t1 where memberid = 100 limit 3) aa
GROUP BY aa.memberid;
執行效果如下: